rsync工具

10.28 rsync工具介紹

rsync命令是一個遠程數據同步工具,可經過LAN/WAN快速同步多臺主機間的文件。rsync使用所謂的「rsync算法」來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不一樣部分,而不是每次都整份傳送,所以速度至關快。算法

語法

rsync有六種不一樣的工做模式:shell

注: src表示源文件,dest表示目的文件數組

10.29 Options

  • -a:包含-rtplgoD
    • -r:同步目錄時加上表示對子目錄進行遞歸處理
    • -t:保持文件的時間屬性
    • -p:保持文件的權限屬性
    • -l:保留軟連接
    • -g:保存文件數組
    • -o:保持文件的屬主
    • -D:保存設備文件信息
  • -v:=visual,可視化
  • -L:同步軟連接的同時同步其源文件
  • -P:顯示同步過程,比v更詳細
  • -u:=update,加上該選項,若是DEST中文件比SRC中的新,則不一樣步
  • -z:=zip,傳輸時壓縮
  • --delete:刪除DEST中SRC沒有的文件
  • --exclude:過濾指定文件,不一樣步

10.30 語法應用:

  • 同步本地文件
[root@1 ~]# rsync -av /etc/passwd /tmp/11.txt
sending incremental file list
passwd

sent 1222 bytes  received 31 bytes  2506.00 bytes/sec
total size is 1148  speedup is 0.92
  • 將本地機器的內容拷貝到遠程機器
[root@1 ~]# rsync -av /etc/passwd root@192.168.8.129:/tmp/11.txt
root@192.168.8.129's password: 
sending incremental file list
passwd

sent 1222 bytes  received 31 bytes  358.00 bytes/sec
total size is 1148  speedup is 0.92

注: 進行遠程同步的時候,遠程機和本地機必須都安裝有rsync工具才能夠。ssh

  • 將本地機器的內容拷貝到遠程機器,當端口不一致時:
[root@1 ~]# rsync -av -e "ssh -p 22" /etc/passwd root@192.168.8.129:/tmp/11.txt
root@192.168.8.129's password: 
sending incremental file list

sent 31 bytes  received 12 bytes  7.82 bytes/sec
total size is 1148  speedup is 26.70
  • 將遠程機器的內容拷貝到本地機器。
[root@1 ~]# rsync -av root@192.168.8.129:/etc/passwd /tmp/22.txt 
root@192.168.8.129's password: 
receiving incremental file list
passwd

sent 42 bytes  received 83 bytes  27.78 bytes/sec
total size is 1149  speedup is 9.19

10.31選項應用

  • rsync -avP 顯示詳盡的同步過程
[root@1 ~]# rsync -avP /root/grep/ /tmp/grep_dest/
sending incremental file list
created directory /tmp/grep_dest
./
717.sh
          65 100%    0.00kB/s    0:00:00 (xfer#1, to-check=20/22)
aaa.sed.shell
          47 100%    3.53kB/s    0:00:00 (xfer#2, to-check=19/22)
…………
  • rsync -avL 同步軟連接的同時同步其源文件
[root@1 ~]# rsync -avL /root/grep/ /tmp/grep_dest/
sending incremental file list
adailink

sent 1530 bytes  received 32 bytes  3124.00 bytes/sec
total size is 14275  speedup is 9.14
  • rsync -av --delete 刪除目標文件中和源文件中不同的文件
[root@1 ~]# touch /tmp/grep_dest/new2.txt

[root@1 ~]# rsync -av --delete /root/grep/ /tmp/grep_dest/
sending incremental file list
./
deleting new2.txt  ##刪除文件new2.txt
adailink -> /root/awk/test.txt

sent 405 bytes  received 19 bytes  848.00 bytes/sec
total size is 13178  speedup is 31.08
  • rsync -av --exclude 傳輸時過濾掉指定文件
[root@1 ~]# rsync -av --exclude "*.txt" --exclude "*.shell" /root/grep/ /tmp/grep_dest/
sending incremental file list
./
717.sh
adailink -> /root/awk/test.txt
boot.log.bak

注: 能夠同時過濾多種文件。工具

相關文章
相關標籤/搜索