centos7 rsync實現本地與遠程備份


一,安裝

1,yum方式安裝即可
yum -y install rsync

2,本地備份
rsync -azvr /data/ecology --delete --exclude='log' /data/backup/

# --exclude 排除 可以加入不需要同步的目錄
# 目錄后面加 / or 不加 / (/data/ecology/)是有區別的,不加會將整個目錄同步過去,
# 加 / 后 (/data/ecology/)會同步ecology目錄下的所以內容,而不附帶ecology目錄
# -v 會顯示具體細節
# 同步前會對比是否已經存在相同的,存在則跳過,異同則同步

二,修改配置文件

1,當需要實現異地備份時,就需要修改配置文件的方式來進行備份

vim /etc/rsyncd.conf

uid=root
gid=root
port=873
max connections=4
use chroot=yes
log file=/var/log/rsyncd.log
log format = %t %a %m %f %b
transfer logging = yes
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/32
timeout=300

[resin1]
path=/data/oanew_backup/resin1
read only = no
list = yes
ignore errors
auth users = root
secrets file = /etc/rsyncd.passwd


[resin2]
path=/data/oanew_backup/resin2
read only = no
list = yes
ignore errors
auth users = root
secrets file = /etc/rsyncd.passwd

[mobile]
path=/data/oanew_backup/app
read only = no
list = yes
ignore errors
auth users = root
secrets file = /etc/rsyncd.passwd

[public]
path=/data/OaPublic
read only = no
list = yes
ignore errors
auth users = root
secrets file = /etc/rsyncd.passwd
2,配置密碼驗證文件

vim /etc/rsyncd.passwd

root:Password_1234

3,啟動服務
rsync --daemon

ps aux|grep rsync

netstat -ntpl|grep 873

確認服務已經啟動后即可

4,推送或拉取都行,命令測試
#從服務器向備份機推送
#登錄服務器
rsync -azvr /data/ecology --delete --exclude="log"  root@192.168.20.200::resin1 --password-file=/etc/rsyncd.passwd >> /data/backup/logs

#從備份機拉取,此處不作驗證,為了方便編寫腳本,采用的推送方式
#拉取操作自行測試,此處略。

三,配置文件詳解

配置文件說明:
#/etc/rsyncd.conf 
#設置服務器信息提示文件名稱,在該文件中編寫提示信息 
motd file = /etc/rsyncd.motd 
#開啟Rsync數據傳輸日志功能 
transfer logging = yes
#設置日志文件名稱,可以通過log format參數設置日志格式 
log file =/var/log/rsyncd.log 
#設置Rsync進程號保存文件名稱 
pid file =/var/run/rsyncd.pid 
#設置鎖文件名稱 
lock file =/var/run/rsync.lock 
#設置服務器監聽的端口號,默認為873 
port = 873 
#設置服務器所監聽網卡接口的IP地址,這里服務器IP地址為192.168.0.254 
address = 192.168.0.254 
#設置進行數據傳輸時所使用的賬戶名稱或ID號,默認使用nobody 
uid = nobody 
#設置進行數據傳輸時所使用的組名稱或GID號,默認使用nobody 
gid = nobody 
#設置user chroot為yes后,rsync會首先進行chroot設置,將根映射到path參數路徑下,對客戶 
#端而言,系統的根就是path參數所指定的路徑。但這樣做需要root權限,並且在同步符號 
#連接資料時僅會同步名稱,而內容將不會同步。 
use chroot = no 
#是否允許客戶端上傳數據,這里設置為只讀。 
read only = yes
#設置並發連接數,0代表無限制。超出並發數后,如果依然有客戶端連接請求,則將會收 
#到稍后重試的提示消息 
max connections = 10 
#模塊,Rsync通過模塊定義同步的目錄,模塊以[name]的形式定義,這與Samba定義共 
#享目錄是一樣的效果。在Rsync中也可以定義多個模塊 
[common] 
#comment定義注釋說明字串 
comment = Web content 
#同步目錄的真實路徑通過path指定 
path = /common
#忽略一些IO錯誤 
ignore errors 
#exclude可以指定例外的目錄,即將common目錄下的某個目錄設置為不同步數據 
#exclude = test/ 
#設置允許連接服務器的賬戶,賬戶可以是系統中不存在的用戶 
auth users = tom,jerry 
#設置密碼驗證文件名稱,注意該文件的權限要求為只讀,建議權限為600,僅在設置auth users 
#參數后有效 
secrets file = /etc/rsyncd.secrets 
#設置允許哪些主機可以同步數據,可以是單個IP,也可以是網段,多個IP與網段之間使用空 
#格分隔 
hosts allow=192.168.0.0/255.255.255.0 
#設置拒絕所有(除hosts allow定義的主機外) 
hosts deny=* 
#客戶端請求顯示模塊列表時,本模塊名稱是否顯示,默認為true 
list= false

四,編寫計划任務及腳本

1,編寫定時任務
crontab -l
0 0 * * *  /data/shell/oabackup.sh

#每日凌晨執行shell腳本

2,shell腳本
vim oabackup.sh

#!/bin/bash
# resin1 backup to 192.168.20.200:/data/oanew_backup/resin1

echo -e '\n' >> /data/backup/logs
/usr/bin/date >> /data/backup/logs
echo "########resin1-ecology-backup##########" >> /data/backup/logs
/usr/bin/rsync -azvr /data/ecology --delete --exclude="log"  root@192.168.20.200::resin1 --password-file=/etc/rsyncd.passwd >> /data/backup/logs
echo "########resin1-ecology-bakend##########" >> /data/backup/logs
echo -e '\n' >> /data/backup/logs
echo "########OaPublic-backup##########" >> /data/backup/logs
/usr/bin/rsync -azvr /data/OaPublic/  root@192.168.20.200::public --password-file=/etc/rsyncd.passwd >> /data/backup/logs
echo "########OaPublic-bakend##########" >> /data/backup/logs
/usr/bin/date >> /data/backup/logs

3,根據配置文件要求,自行創建目錄,同步數量可在logs中查看。

五,總結

切記,rsync同步時會同時將目錄軟鏈一起同步過去,此時,如果對共享目錄不做單獨同步處理,會導致回滾時共享目錄文件異同或丟失。

所以,共享目錄的內容要進行單獨備份。以便回滾時進行覆蓋或替換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM