NFS共享儲存與rsync實時同步
阿新 • • 發佈:2022-05-21
NFS共享儲存與rsync實時同步
0.需求
1.web01和web02可以上傳圖片
2.nfs使用者資料每天凌晨1點做備份
3.校驗資料的完整性
4.nfs使用者資料實時同步到backup的/data/目錄下,做nfs的備機
1.環境準備
主機名 | WanIP | LanIP | 角色 | 部署服務 |
---|---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | nfs客戶端 | httpd,php,nfs |
web02 | 10.0.0.8 | 172.16.1.8 | nfs客戶端 | httpd,php,nfs |
nfs | 10.0.0.31 | 172.16.1.31 | nfs服務端,rsync客戶端 | nfs,rsync,inotify |
10.0.0.41 | 172.16.1.41 | rsync服務端,nfs服務端(備機) | nfs,rsync |
部署web網站
1.安裝apache,php:yum install -y httpd php
2.下載交作業網站的壓縮包
[root@web02 /var/www/html]# ll
total 28
-rw-r--r--. 1 root root 27020 May 18 11:54 kaoshi_modify.zip
3.解壓該壓縮包:
unzip kaoshi_modify.zip
4.修改配置檔案將使用者修改成www:
5.建立使用者 1.建立www使用者:groupadd -g 666 www useradd -u 666 -g 666 www -s /sbin/nologin -M 2.檢視使用者: [root@web02 /var/www/html]# id www uid=666(www) gid=666(www) groups=666(www) 3.修改站點目錄的屬主與屬組: chown -R www:www /var/www/html [root@web02 /var/www/html]# ll -d drwxr-xr-x. 2 www www 102 May 21 14:59 . 6.啟動服務並加入開機自啟: systemctl start httpd systemctl enable httpd 7.檢查程序和埠
8.開啟瀏覽器訪問網站
9.上傳檔案測試是否成功
部署NFS服務—服務端
1.安裝nfs服務:yum install -y nfs-utils 2.修改配置檔案:[root@nfs ~]# vim /etc/exports # 共享目錄 允許通過的網段(引數) /data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash) 3.根據配置檔案建立目錄 mkdir /data 4.建立www使用者 groupadd -g 666 www useradd -u 666 -g 666 www -s /sbin/nologin -M 5.修改共享目錄屬主 [root@backup ~]# ll /data -d drwxr-xr-x. 2 www www 6 May 21 15:50 /data 6.開啟nfs服務並加入開機自啟: [root@backup ~]# systemctl start nfs [root@backup ~]# systemctl enable nfs 7.檢查程序
8.檢視配置檔案是否生效
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
NFS客戶端
1.安裝nfs服務:yum install -y nfs—utils
2.檢視掛載點:
[root@web02 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
3.掛載目錄
mount -t nfs 172.16.1.31:/data /var/www/html/user_data/
4.檢視是否掛載成功
5.上傳檔案檢視是否能夠收到
使用sersync實現同步
1.部署rsync——服務端
0.安裝rsync:yuminsatll -y rsync
1.修改rsync的配置檔案:
[root@backup ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
[sync_data]
comment = sync_data
path = /data
2.根據配置檔案建立使用者
groupadd -g 666 www
useradd -u 666 -g 666 www -s /sbin/nologin -M
3.建立密碼檔案
echo 'rsync_backup:123'>/etc/rsync.passwd
4.修改密碼檔案的許可權為600
[root@backup ~]# chmod 600 /etc/rsync.passwd
[root@backup ~]# ll /etc/rsync.passwd
-rw-------. 1 root root 17 May 21 16:27 /etc/rsync.passwd
5.建立同步目錄
mkdir /data
6.修改目錄的屬主
chown -R www:www /data
[root@backup ~]# ll /data -d
drwxr-xr-x. 2 www www 6 May 21 15:50 /data
7.啟動rsync服務並加入開機自啟:
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
8.檢查程序和埠
rsync客戶端
1.先安裝rsync和inotify:yum install -y rsync inotify-tools
2.建立rsync密碼檔案:
[root@nfs ~]# echo '123'>/etc/rsync.passwd
[root@nfs ~]# cat /etc/rsync.passwd
123
3.修改密碼檔案許可權為600
chmod 600 /etc/rsync.passwd
4.推資料測試rsync是否配置成功
2.安裝sersync的二進位制包:
1.建立放置安裝包的目錄
mkdir /application
2.獲取安裝包:
wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz
3.解壓安裝包
[root@nfs /application]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs /application]# ll
total 712
drwxr-xr-x. 2 root root 41 Oct 26 2011 GNU-Linux-x86
4.修改sersync配置檔案
vim /application/GNU-Linux-x86/confxml.xml
5.啟動服務
[root@nfs /application/GNU-Linux-x86]# /application/GNU-Linux-x86/sersync2 -rdo /application/GNU-Linux-x86/confxml.xml
6.在/data目錄下建立一個檔案檢視是否同步
每日備份——服務端
1.客戶端提前準備存放的備份的目錄,目錄規則如下: /client_backup
2.客戶端在本地打包備份(系統配置檔案、應用配置等)拷貝至 /client_backup 包名: nfs_172.16.1.31_2022-05-
16.tar.gz
3.客戶端最後將備份的資料進行推送至備份伺服器
4.客戶端每天凌晨1點定時執行該指令碼
5.客戶端伺服器本地保留最近7天的資料, 避免浪費磁碟空間
服務端需求
1.服務端部署rsync,用於接收客戶端推送過來的備份資料
2.服務端需要每天校驗客戶端推送過來的資料是否完整
3.服務端需要每天校驗的結果通知給管理員
4.服務端僅保留6個月的備份資料,其餘的全部刪除
1.建立備份目錄
mkdir /backup
2.修改目錄的屬主
chown -R www:www /backup
[root@backup ~]# ll /backup/ -d
drwxr-xr-x. 2 www www 6 May 21 17:41 /backup/
rsync客戶端
1.測試能否傳送檔案
2.編寫指令碼實現備份
[root@nfs ~]# vim backup.sh
bak_dir="/client_backup"
host_name=`hostname`
ip=`/sbin/ifconfig eth1|awk 'NR==2{print $2}'`
bak_time=`date +%F`
mkdir -p $bak_dir
tar -zcPf $bak_dir/${host_name}_${ip}_${bak_time}.tar.gz /data
cd $bak_dir && \
md5sum *${bak_time}.tar.gz > ${host_name}_${ip}_${bak_time}.md5
rsync -avz $bak_dir/ [email protected]::backup --password-file=/etc/rsync.passwd
find $bak_dir -type f ! -mtime -7|xargs rm -f
3.測試指令碼並校驗檔案是否丟失
4.編寫定時任務
#Usage:date_backup By:jl Date:2022/5/21
00 01 * * * /usr/bin/sh /root/backup.sh &> /dev/null
rsync服務端編寫
1.安裝發郵件工具:yum install -y mailx
2.修改配置檔案:vim /etc/mail.rc
set from=傳送郵件的郵箱
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=傳送郵件的郵箱
set smtp-auth-password=授權碼
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
3.編寫指令碼 vim md5.sh
bak_dir="/backup"
host_name=`hostname`
bak_time=`date +%F`
cd $bak_dir && \
md5sum -c *${bak_time}.md5 | mail -s '校驗檔案' qq郵箱
find /backup/ -type f ! -mtime -180 |xargs rm -f
4.測試指令碼 :sh md5.sh
5.編寫定時任務
[root@backup ~]# crontab -l
# Usage:date_backup By:jl Date:2022/5/21
01 01 * * * /usr/bin/sh /root/mds.sh &> /dev/null