1. 程式人生 > >rsync備份工具

rsync備份工具

開發十年,就只剩下這套架構體系了! >>>   

rsync教程

[root@wangzb01 ~]# yum install -y rsync  //安裝軟體包,同步的機器和被同步的機器都需要安裝

rsync -av /etc/passwd /tmp/1.txt
rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt 

rsync格式

rsync [OPTION] … SRC   DEST
rsync [OPTION] … SRC   [user@]host:DEST
rsync [OPTION] … [user@]host:SRC   DEST
rsync [OPTION] … SRC   [user@]host::DEST
rsync [OPTION] … [user@]host::SRC   DEST

rsync常用選項

-a 包含-rtplgoD
-r 同步目錄時要加上,類似cp時的-r選項
-v 同步時顯示一些資訊,讓我們知道同步的過程
-l 保留軟連線
-L 加上該選項後,同步軟連結時會把原始檔給同步
-p 保持檔案的許可權屬性
-o 保持檔案的屬主
-g 保持檔案的屬組
-D 保持裝置檔案資訊
-t 保持檔案的時間屬性
--delete 刪除DEST中SRC沒有的檔案
--exclude 過濾指定檔案,如--exclude “logs”會把檔名包含logs的檔案或者目錄過濾掉,不同步
-P 顯示同步過程,比如速率,比-v更加詳細
-u 加上該選項後,如果DEST中的檔案比SRC新,則不同步
-z 傳輸時壓縮

rsync通過ssh方式同步

rsync -av test1/ 192.168.133.132:/tmp/test2/
rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/

rsync 通過服務的方式同步

要編輯配置檔案/etc/rsyncd.conf
啟動服務rsync --daemon
格式:rsync -av test1/ 192.168.133.130::module/dir/

rsyncd.conf樣例

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.133.130
[test]
path=/root/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2  192.168.133.0/24

rsyncd.conf配置檔案詳解 

port:指定在哪個埠啟動rsyncd服務,預設是873埠。
log file:指定日誌檔案。
pid file:指定pid檔案,這個檔案的作用涉及服務的啟動、停止等程序管理操作。
address:指定啟動rsyncd服務的IP。假如你的機器有多個IP,就可以指定由其中一個啟動rsyncd服務,
	如果不指定該引數,預設是在全部IP上啟動。
[]:指定模組名,裡面內容自定義。
path:指定資料存放的路徑。
use chroot true|false:表示在傳輸檔案前首先chroot到path引數所指定的目錄下。這樣做的原因是實現額外的安全防護,
	但缺點是需要以roots許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下chroot值為true,
	如果你的資料當中有軟連線檔案,阿銘建議你設定成false。
max connections:指定最大的連線數,預設是0,即沒有限制。
read only ture|false:如果為true,則不能上傳到該模組指定的路徑下。
list:表示當用戶查詢該伺服器上的可用模組時,該模組是否被列出,設定為true則列出,false則隱藏。
uid/gid:指定傳輸檔案時以哪個使用者/組的身份傳輸。
auth users:指定傳輸時要使用的使用者名稱。
secrets file:指定密碼檔案,該引數連同上面的引數如果不指定,則不使用密碼驗證。
	注意該密碼檔案的許可權一定要是600。
	格式:使用者名稱:密碼
hosts allow:表示被允許連線該模組的主機,可以是IP或者網段,如果是多個,中間用空格隔開。 
當設定了auth users和secrets file後,客戶端連服務端也需要用使用者名稱密碼了,
若想在命令列中帶上密碼,可以設定一個密碼檔案

rsync -avL [email protected]::test/test1/  /tmp/test8/ --password-file=/etc/pass 
其中/etc/pass內容就是一個密碼,許可權要改為600

補充

stat命令檢視一個檔案的三個時間

atime 表示檔案最近一次被訪問的時間
mtime表示檔案內容最近一次被修改的時間
ctime表示檔案屬性資訊最忌那一次被改動的時間(inode儲存的資訊,檔案所屬組,屬主,檔案大小