shell 學習筆記(四)

 rsync 
===

rsync  是一款遠程同步軟件 遠程同步功能的軟件,它在同步文件的同時,能夠保持原來文件的權限、時間、軟硬連接等附加信息  。

它採用C/S的方式進行同步,有人測試首次同步的時候速度較慢,後面同步的時候只同步更改的文件。(這讓我想到git,固然他們的目的不同)

問題1:在什麼狀況下用它?
問題2:如何使用,例如同步一個目錄到遠程?

先找一些資料

http://www.iteye.com/topic/604436
http://blog.csdn.net/caianye/article/details/6670750
http://www.cnblogs.com/itech/archive/2009/08/10/1542945.htmlhtml

http://everythinglinux.org/rsync/linux


原理
http://zh.wikipedia.org/wiki/Rsync
http://coolshell.cn/articles/7425.html

回答1: 我翻譯了的小段關於rsync的優勢和特色。git

 Rsync 是一個易用易安裝的小工具。Rsync 不只是一個腳本化的FTP會話或者其餘形式的文件傳輸的腳本,它會僅拷貝被改變文件的差量部分,通過壓縮,並經過ssh協議安全的傳輸。這又一點拗口,但它意味着:shell

差量  -  僅僅實際被改變的文件片斷將被傳輸,而非整個文件。這使得更新更快速,這對慢速的調制解調器來講很是好。 FTP將會傳輸整個文件,哪怕只有1字節的改變。
安全

壓縮  -  小塊的差量片斷在傳輸過程通過壓縮,進一步節省傳輸的時間和網絡的負載。
服務器

安全的shell  -  安全意識強的你確定會喜歡這一點,併爲此而使用它。rsync的流能夠經過ssh協議加密會話替代rsh,固然這是可選的(若是你不想用ssh,你能夠在/etc/inet.d  設置,並重啓inet的守護進程,這樣就關閉了它的安全性)
網絡

回答2:ssh

配置服務器端:tcp

hvn1:~ # cat /etc/rsyncd.conf
strict modes=yes
port = 873
gid = users
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

[test]
uid=root
gid=root
path= /root/test
read only = no
write only = no
hosts allow = *
auth users = root
secrets file = /etc/rsyncd.secrets

hvn1:~ # cat /etc/rsyncd.secrets 
# user:passwd
root:hello123
hvn1:~ # ll /etc/rsyncd.secrets 
-rw------- 1 root root 28 Sep 23 13:40 /etc/rsyncd.secrets

 
hvn1:~ # ps -ef | grep rsync
root     27870     1  0 13:41 ?        00:00:00 /usr/bin/rsync --daemon
root     27985 26855  0 13:58 pts/6    00:00:00 grep rsync
hvn1:~ # netstat -na | grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      
tcp        0      0 :::873                  :::*                    LISTEN

 
  配置客戶端: 

[root@bogon test1]# service xinetd status
xinetd (pid  2176) is running...

下載同步:工具

rsync -av --progress --delete root@10.0.23.61::test  /root/work/test1/ff/

         上傳同步:

rsync -av --progress  /root/work/test1/ff/  root@10.0.23.61::test

相關文章
相關標籤/搜索