八週第二次課(5月14日)rsync工具介紹、rsync經常使用選項、rsync經過ssh同步

10.28 rsync工具介紹linux

yum install -y rsync   //安裝rsyncshell

 rsync -av /etc/passwd   /tmp/1.txt     //將文件拷貝到tmp目錄 並更名1.txt服務器

 rsync -av /etc/passwd root@192.168.218.128:/tmp/1.txt   // 遠程拷貝ssh

rsync的命令格式:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]IP:DEST
rsync [OPTION]... [USER@]IP:SRC DEST
rsync [OPTION]... [USER@]IP::SRC DEST
rsync [OPTION]... SRC [USER@]IP::DEST
OPTION 表示選項,例如 -av,SRC 表示原目錄或文件,DEST 表示目標目錄或文件,中括號[]裏的user@是能夠省略的。工具

對應於以上六種命令格式,rsync有六種不一樣的工做模式:測試

  1. 拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啓動這種工做模式。如:rsync -a /data /backup
  2. 使用一個遠程shell程序(如rshssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啓動該模式。如:rsync -avz *.c foo:src
  3. 使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啓動該模式。如:rsync -avz foo:src/bar /data
  4. 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啓動該模式。如:rsync -av root@192.168.78.192::www /databack
  5. 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啓動該模式。如:rsync -av /databack root@192.168.78.192::www
  6. 列遠程機的文件列表。這相似於rsync傳輸,不過只要在命令中省略掉本地機信息便可。如:rsync -v rsync://192.168.78.192/www

10.29/10.30 rsync經常使用選項

選項

-a 歸檔模式,表示以遞歸方式傳輸文件,並保持全部屬性,等同於-rlptgoD, -a選項後面能夠跟一個 --no-OPTION 這個表示關閉,-rlptgoD中的某一個例如 -a--no-l 等同於-rptgoD
-r 對子目錄以遞歸模式處理,主要是針對目錄來講的,若是單獨傳一個文件不須要加-r,可是傳輸的是目錄必須加-r選項,相似cp時的-r選項
-v 打印一些信息出來,好比速率,文件數量等,知道同步的過程
-l 保留軟鏈結
-L 向對待常規文件同樣處理軟鏈結,若是是原目錄或文件中有軟鏈接文件,則加上該選項後將會把軟鏈接指向的目標文件拷貝到目標目錄或文件下
-p (小寫)保持文件的權限屬性
-o 保持文件的屬主信息
-g 保持文件的屬組信息
-D 保持設備文件信息
-t 保持文件時間屬性
--delete 刪除目標文件中原文件沒有的文件
--exclude 過濾指定文件,如 --exclude "logs"會把文件名包含logs的文件或者目錄過濾掉,不一樣步。文件名能夠是萬用字符模式(如.txt)
-P (大寫)顯示同步過程,好比速率,比 -v 更加詳細
--progress 在同步的過程當中能夠看到同步的過程狀態,好比統計要同步的文件數量、同步的文件傳輸速度等等
-u 加上這個選項後,若是目標目錄的文件比原目錄的文件新,則不一樣步
-z 傳輸時壓縮spa

測試: .net

將目錄root目錄111拷貝到tmp/111_dest目錄code

命令 rsync -av /root/111/ /tmp/111_dest/ ,將原目錄/root/ 下的目錄 /111/ 同步到 /tmp/ 目錄下而且更更名稱爲 /111_dest/ 目錄。-av 在這邊的做用就是包含拷貝目錄、軟連接、屬主、屬組、文件權限等選項,可視化拷貝過程。
lys3這邊是軟連接文件,指向了原文件 /tmp/lys2遞歸

a選項裏面的l起的做用,保留了軟連接文件。與 l 相對應的就是 L,接着來操做一下 L 選項,輸入命令 rsync -avL /root/111/ /tmp/111_dest/,這邊輸入L就至關於把 a 選項裏面的 l 覆蓋掉

在文件 /tmp/lys2 上面輸入內容,再同步一下目錄,接着查看目錄 /tmp/111_dest/lys3 的內容,會發現就是文件 lys2 上的內容。這個就是 L 選項的做用,能夠把軟連接指向的原文件拷貝到目標文件

在目錄 /tmp/111_dest/ 目錄下,新建一個文件 new.txt,而後使用同步命令 --delete 選項,命令執行的過程當中出現了 deleting new.txt ,刪除了這個文件,而後就看到新建的 new.txt 文件沒有了。這就是 --delete 的做用。 rsync -avL  --delete  /root/111/   /tmp/111_dest/

命令 rsync -avL --exclude ".txt" /root/111/ /tmp/111dest/ ,執行的過程當中看不到後綴 .txt 的文件,結果也確實沒有出現 .txt 的文件。多個的狀況,輸入命令 rsync -avL --exclude ".txt" --exclude "lys" /root/111/ /tmp/111dest/

-P  顯示顯示同步過程,好比速率

-u 加上這個選項後,若是目標目錄的文件比原目錄的文件新,則不一樣步

10.31 rsync經過ssh經過

經過ssh同步 須要在ab機器都安裝rsync

經過ssh同步,輸入命令 rsync -av /etc/passwd 192.168.218.130:/tmp/lys.txt 

反過來操做,輸入命令 rsync -avP 192.168.218.130:/tmp/lys.txt  /tmp/123.txt

若是不知道對方的端口的話,就須要指定端口,加上-e選項,輸入命令 rsync -avP -e "ssh -p 22" /etc/passwd  192.168.218.130:/tmp/lys.txt 

相關文章
相關標籤/搜索