個人應用場景是重要文件備份shell
端口:873,備份端打開便可vim
下載地址:https://rsync.samba.org/ftp/rsync/src/bash
服務端和客戶端要保持版本一致服務器
網盤連接:https://pan.baidu.com/s/1wTsj0cCfXRcREnbzeIviuQssh
一、安裝rsync:測試
...網站
二、設置密碼文件ui
vim /etc/rsync.pas cjh:123456 #格式 用戶名:密碼 這裏的用戶名和密碼跟系統沒有關係的
配置文件spa
vi /etc/rsyncd.conf #文件不必定有,能夠本身建立 # /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: # uid = nobody # gid = nobody # use chroot = yes # max connections = 4 # pid file = /var/run/rsyncd.pid # exclude = lost+found/ # transfer logging = yes # timeout = 900 # ignore nonreadable = yes # dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # [ftp] # path = /home/ftp # comment = ftp export area
加上個人配置code
uid =root #root是必須的,同步時權限問題 gid =root use chroot = yes max connections = 1 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log transfer logging = yes log format = %t %a %m %f %b timeout = 300 [test] read only =no #必須是no path = /root/ #同步目錄路徑,要注意同步過來的時候模塊名會拼接,好比/root/test/ 這裏就只須要填/root/ comment = xxx #可選,無太大做用 auth users =cjh #用戶名,注意跟系統的用戶密碼不要緊 secrets file =/etc/rsync.pas #密碼文件 hosts allow = ip1,ip2 #源文件端ip
啓動
which rsync /xx/rsync #後臺啓動 /xx/rsync --daemon
ps -ef | grep rsync #看看服務是否正常運行
一、安裝啓動rsync+inotify
注意密碼文件格式跟備份端不同,好比這裏直接寫123456就能夠了,不須要用戶名
1、rsync [OPTION]... SRC DEST 2、rsync [OPTION]... SRC [USER@]HOST:DEST 3、rsync [OPTION]... [USER@]HOST:SRC DEST 4、rsync [OPTION]... [USER@]HOST::SRC DEST 5、rsync [OPTION]... SRC [USER@]HOST::DEST 6、rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
1)拷貝本地文件。(沒用過,不知道效果怎樣)
2)使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。(若是沒有作免密登陸,每次都要輸密碼)
3)使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。(若是沒有作免密登陸,每次都要輸密碼)
4)從遠程rsync服務器中拷貝文件到本地機。(按期備份能夠用這個)
5)從本地機器拷貝文件到遠程rsync服務器中。(實時備份用這個)
6)列遠程機的文件列表。(沒用過)
二、一次性同步測試
rsync -av /root/test/ cjh@備份端IP::test --password-file=/etc/rsync.pas --bwlimit=100
test是客戶端定義的模塊,/root/test2 是客戶端的目錄,密碼文件跟服務端不一樣的是隻須要填密碼,--bwlimit是網速的限制,--delete是徹底同步目錄文件
安裝inotify-tools,下載的網站打不開,我就直接用yum方式安裝
yum install -y inotify-tools
實時同步腳本(attrib指文件的屬性,好比只讀)
#!/bin/bash host1=IP #備份服務器IP src=/root/test/ #同步目錄最好保持一致 dst1=test #模塊名稱 user1=cjh #用戶名 /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e create,modify,attrib $src \ | while read files do rsync -av $src $user1@$host1::$dst1 --password-file=/etc/rsync.pas --bwlimit=100 echo "${files} was rsynced." done
啓動腳本
nohup sh run.sh > run.out & 2>&1 &
測試經過
注意點:
一、chmod 600 /etc/rsync.pas,兩端都須要作這個操做
二、大文件的同步是很慢的,同步的時候卡住注意是否是文件太大了
三、上線前認真作好測試和普通方式的備份,以及儘可能不要使用--delete,防止數據丟失
四、/etc/rsyncd.conf配置文件中一個註釋都不能寫,上面只是爲了方便表達參數含義!
五、當文件數量超多的時候,同步會有一點延遲,大概是幾分鐘
轉載請註明博客出處:http://www.cnblogs.com/cjh-notes/