一,安裝
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同步時會同時將目錄軟鏈一起同步過去,此時,如果對共享目錄不做單獨同步處理,會導致回滾時共享目錄文件異同或丟失。
所以,共享目錄的內容要進行單獨備份。以便回滾時進行覆蓋或替換。