說明:
Rsync是linux/Unix文件同步和傳送工具。用於替代rcp的一個工具,rsync可以通過rsh或ssh使用,也能以daemon模式去運行,在以daemon方式運行時rsync server會開一個873端口,等待客戶端去連接。連接時,rsync server會檢查口令是否相符,若通過口令查覈,則可以通過進行文件傳輸,第一次連通完成時,會把整份文件傳輸一次,以後則就只需進行增量備份.
安裝:
#wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz#tar xf rsync-3.0.9.tar.gz# cd rsync-3.0.9# ./configure && make && make install
參數:
-v,--verbose 詳細模式輸出;-a,--archive 歸檔模式,表示以遞歸的方式傳輸文件,並保持所有文件屬性不變,相當於使用了組合參數-rlptgoD;-r, --recursive 對子目錄以遞歸模式處理;-l, --links 保留軟鏈結;-p, --perms 保持文件權限;-t, --times 保持文件時間信息;-g, --group 保持文件屬組信息;-o, --owner 保持文件屬主信息;-D, --devices 保持設備文件信息;-H, --hard-links 保留硬鏈結;-S, --sparse 對稀疏文件進行特殊處理以節省DST的 空間;--delete 刪除那些DST中SRC沒有的文件;-z, --compress 對備份的文件在傳輸時進行壓縮處理;
rsync六種不同的工作模式:
1.拷貝本地文件,將/home/coremail目錄下的文件拷貝到/cmbak目錄下
# rsync -avSH /home/coremail/ /cmbak/
2.拷貝本地機器的內容到遠程機器
# rsync -av /home/coremail/ 192.168.11.12:/home/coremail/
3.拷貝遠程機器的內容到本地機器
# rsync -av 192.168.11.11:/home/coremail/ /home/coremail/
4.拷貝遠程rsync服務器(daemon形式運行rsync)的文件到本地機。
# rsync -av [email protected]::www /databack
5.拷貝本地機器文件到遠程rsync服務器(daemon形式運行rsync)中。當DST路徑信息包含”::”分隔符時啓動該模式。
# rsync -av /databack [email protected]::www
6.顯示遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
# rsync -v rsync://192.168.11.11/data
rsync配置文件說明:
# cat/etc/rsyncd.conf //內容如下port = 873 //端口號uid = nobody //指定當模塊傳輸文件的守護進程UIDgid = nobody //指定當模塊傳輸文件的守護進程GIDuse chroot = no //使用chroot到文件系統中的目錄中max connections = 10 //最大併發連接數strict modes = yes //指定是否檢查口令文件的權限pid file = /usr/local/rsyncd/rsyncd.pid //指定PID文件lock file = /usr/local/rsyncd/rsyncd.lock //指定支持max connection的鎖文件,默認爲/var/run/rsyncd.lockmotd file = /usr/local/rsyncd/rsyncd.motd //定義服務器信息的,自己寫 rsyncd.motd 文件內容log file = /usr/local/rsyncd/rsync.log //rsync 服務器的日誌log format = %t %a %m %f %b syslog facility = local3 timeout = 300[conf] //自定義模塊path = /usr/local/nginx/conf //用來指定要備份的目錄comment = Nginx conf ignore errors //可以忽略一些IO錯誤read only = no //設置no,客戶端可以上傳文件,yes是隻讀write only = no //no爲客戶端可以下載,yes 不能下載hosts allow = 192.168.2.0/24 //可以連接的IPhosts deny = * //禁止連接的IPlist = false //客戶請求時,使用模塊列表uid = root gid = root auth users = backup //連接用戶名,和linux系統用戶名無關係secrets file = /etc/rsyncd.pass //驗證密碼文件