Linux--rsync實現文件同步

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

配置文件內容:


uid=nobody //運行rsync守護進程的用戶
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 #創建密碼文件

內容:

rsync:rsync //這裏用戶名和密碼都定義爲rsync

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 #更改文件權限

內容:

rsync //這裏是服務端rsync服務授權密碼

測試:(在服務端/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服務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章