搭建企業級全網數據定時備份方案【cron + rsync】
阿新 • • 發佈:2018-07-11
關閉 stat time all delete lis gre file lap
1.1.1. 服務端的配置[192.168.25.141]
Rsync的端口是:873
man rsyncd.conf 查看幫助
1.vim /etc/rsyncd.conf vi /etc/rsyncd.conf -->man rsyncd.conf 查看幫助 ######rsyncd.conf####### uid = rsync ----->非系統虛擬用戶 gid = rsync use chroot =no -->防止出現安全問題 maxconnections = 200 --->最大連接數 timeout = 300 --->超時時間 pid file =/var/run/rsyncd.pid --->進程pid所在的文件 lock file =/var/run/rsync.lock -->鎖 log file =/var/log/rsyncd.log -->出錯的日誌文件 [backup] --->模塊 path = /backup ->可以理解為共享目錄 ignore errors --->忽略錯誤 read only =false --->可讀寫 list = false -->是否允許列表 hosts allow =192.168.25.0/24 --->允許的主機 hosts deny =0.0.0.0/32 auth users =rsync_backup -->虛擬用戶 secrets file= /etc/rsync.password -->用戶對應的密碼文件 #######rsyncd.config######## 啟動/關閉rsync服務進程 rsync --daemon pkill rsync 檢查rsync服務/端口 ps -ef|grep rsync|grep -v "grep" ->檢查一下進程 netstat -lntup|grep 873 ->檢查端口 ==> ss -lntup|grep 873 ==> lsof -i:873
查看日誌,確認服務開啟
cat /var/log/rsyncd.log
創建用戶rsync
useradd rsync -s /sbin/nologin -M 虛擬用戶,不需要創建家目錄
創建共享目錄backup
mkdir /backup chown -R rsync.rsync /backup ls -ld /backup
寫入密碼進入/etc/rsync.password
echo "rsync_backup:cnp200@HW" >> /etc/rsync.password ->這裏 rsync_backup rsync的虛擬用戶名,cnp200@HW是rsync的虛擬用戶名的密碼 cat /etc/rsync.password chmod 600 /etc/rsync.password ls -dl /etc/rsync.password
開機自啟動
echo "rsync --daemon">>/etc/rc.local tail /etc/rc.local
1.1.2. 客戶端的配置[192.168.25.142]
寫入密碼到rsync.password文件
echo "cnp200@HW" > /etc/rsync.password -->只需要密碼 cat /etc/rsync.password chmod 600 /etc/rsync.password ls -dl /etc/rsync.password
1.1.3. 測試同步效果
客戶端/etc/hosts目錄以及目錄本身同步到服務端的back目錄(配置文件裏配置的module)下
客戶端:
rsync -avz /etc/hosts [email protected]::backup --password-file=/etc/rsync.password rsync -avz [email protected]::backup /tmp --password-file=/etc/rsync.password
服務端:
註意: 1.使用絕對路徑 2. destination must be a directory when copying more than 1 file
1.1.4 Rsync無差異同步[可選]
無差異同步(盡量不用) 盡量不用,用之前一定要備份
以本地/tmp為準,tmp有服務器端有,服務器多余的文件刪除
push: rsync -avz --delete /tmp [email protected]::backup --password-file=/etc/rsync.password
以服務器端為準,服務器端有,同步到本地/tmp, /tmp多余的文件刪除排除
pull: rsync -avz --delete [email protected]::backup /tmp --password-file=/etc/rsync.password
1.服務端:/etc/rsyncd.conf裏面添加exclude= a b test/h.txt
2.客戶端:
rsync -avz --exclude=/tmp/{1,2} /tmp/ [email protected]::backup --password-file=/etc/rsync.password rsync -avz --exclude=/tmp/{a..g} /tmp/ [email protected]::backup --password-file=/etc/rsync.password rsync -avz --exclude-from=paichu.txt /tmp/ [email protected]::backup --password-file=/etc/rsync.password
1.1.5. 腳本配合rsync實現實時同步
1.編寫腳本文件hh.sh
#!/bin/sh IP="$(ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2{print $4}‘)" path="/backup_$IP.$(date +%F)" dir="$IP.$(date +%F)" echo ".................Starting copy rc.local................" mkdir -p $path/$dir $$\ /bin/cp /etc/rc.local $path/$dir/rc.local_$(date +%F) echo ".................Ending copy rc.local................" echo ".................Starting rsync......................." rsync -az $path [email protected]::backup --password-file=/etc/rsync.password echo ".................Ending rsync......................." exit2.設置定時任務
crontab -e #################Crontab for rsync########### 0 0 20 8 * /bin/sh /home/omc/hh.sh >/dev/null 2>&1
更多參考
搭建企業級全網數據定時備份方案【cron + rsync】2
搭建企業級全網數據定時備份方案【cron + rsync】