rsync是類unix系統下的數據鏡像備份工工具.
確認主機是否安裝rsync:shell>rpm -qa|grep rsync
如果未安裝,直接執行:shell>yum -y install rsync
服務端:xx.xxx.xx.14 同步目錄:/file/
客戶端:xx.xxx.xx.229 同步目錄:/file/
1、服務端配置
shell>vi /etc/rsyncd.conf #創建配置文件rsyncd.conf
配置文件內容:
gid=nobody //運行rsync守護進程的組
use chroot = no //不使用chroot
max connections = 10//最大連接數,0爲不限制
pid file = /var/run/rsyncde.pid //pid文件存放位置
lock file = /var/run/rsync.lock//鎖文件存放位置
log file = /var/log/rsyncd.log //日誌記錄文件的存放位置
//通過該選項可以覆蓋客戶指定的IP超時時間
//通過該選項可以確保rsync服務器不會永遠等待一個崩潰的客戶端
//超時單位爲秒鐘,0表示沒有超時定義,這也是默認值
//對於匿名rsync服務器來說,一個理想的數字是600.
Timeout = 300
Log format = %t %a %m %f %b
[backup] //這裏是認證的模塊名,在client端需要指定
path=/file/ //需要做鏡像的目錄
ignore errors //可以忽略一些無關的IO錯誤
read only = yes //該選項設定是否允許客戶上傳文件
list = no //不允許列文件
auth users = rsync //認證的用戶名
secrets file = /etc/rsyncd.secrets //祕密文件(下面定義)
hosts allow = xx.xxx.xx.229//允許主機或網段
hosts deny = 0.0.0.0/0//禁止主機
shell>vi etc/rsyncd.secrets #創建密碼文件
內容:
shell>chmod 0600 /etc/rsyncd.secrets #更改密碼文件權限
shell>rsync --daemon; #啓動服務,默認在873端口監聽(可以自己修改)
備註:killall -9 rsync //殺掉相關服務
rm -rf /var/run/rsyncd.pid //每次重啓都需要刪除pid
/usr/bin/rsync --daemon //啓動rsync服務
2、客戶端
客戶端就不用啓動rsync服務了
shell>vi /etc/rsyncd.secrets #這裏也是創建密碼文件,文件名字自定義,但內容只需要填目標服務授權密碼
shell>chmod 0600 /etc/rsyncd.secrets #更改文件權限
內容:
測試:(在服務端/home/source/ 先創建test文件 )
shell>rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets [email protected]::backup /file
v:傳輸時的進度等信息, z:表示壓縮, r:是遞歸, t:保持文件原有時間, o:保持文件原有屬主, P:傳輸進度, g:保持文件原有用戶組
--progress 指顯示
--delete 指如果服務器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致
--password-file=/etc/rsyncd.secrets 認證密碼
rsync 認證用戶
backup 認證模塊
如果客戶端/home/receive/下產生了test文件代表同步成功
下一步寫一個腳本文件實現真正的同步......
啓動腳本:rsync.sh
shell>vi /data/backup/rsync.sh
#!/bin/sh rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets rsync@xx.xxx.xx.14::backup
/file |
shell>crontab -e
0 */6 * * * /data/backup/rsync.sh //每6個小時執行一次同步
shell>crontab -l #可以查看任務設置情況
shell>service crond status #查看crond是否已啓動,若啓動了能看到PID
shell>service crond start #啓動crond服務