關於rsync的斷點續傳
關於rsync的斷點續傳
經常copy大文件,由於服務器、路由等網絡的不確定性,老是出現
remote server not responding.
於是查了下資料,發現rsync這個工具支持斷點續傳功能,這里介紹一下。
rsync也分服務器端和客戶端,使用man查看幫助信息,我們發現rsync有六種不同的工作模式:
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
List remote files: rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
1. 拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這
種工作模式。
2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器
。當DST
路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器
。當SRC
地址路徑包含單個冒號":"分隔符時啟動該模式。
4. 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動
該模式。
5. 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟
動該模式。
6. 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信
息即可。
下面以實例來說明:
# rsync -vazu -progress cnangel@10.1.6.160:~/works/ ~/works
v:詳細提示
a:以archive模式操作,復制目錄、符號連接,等價於 -rlptgoD 。
z:壓縮
u:只進行更新,防止本地新文件被重寫,注意兩者機器的時鍾的同時
-progress:指顯示
以上命令是保持客戶機10.1.6.160上的$HOME/works目錄和當前機器的$HOME/works目錄同
步。
這經常是我們所說的鏡像同步就是這么來的,如果斷點續傳呢?rsync完全可以做到這一點。man手冊再次告訴我們:
--partial
By default, rsync will delete any partially transferred file if the transfer is
interrupted. In some circumstances it is more desirable to keep partially transferred
files. Using the --partial option tells rsync to keep the partial file which should
make a subsequent transfer of the rest of the file much faster.
--partial-dir=DIR
A better way to keep partial files than the --partial option is to specify a DIR that
will be used to hold the partial data (instead of writing it out to the destination
file). On the next transfer, rsync will use a file found in this dir as data to
speed up the resumption of the transfer and then delete it after it has served its
purpose.
默認的情況下,當rsync傳輸中斷后,新的rsync傳輸將刪除所有的未完成的殘余文件片段,然后開始新的傳輸。而使用--partial后,將會進行我們所說的斷點續傳。
值得注意的是-P這個參數是綜合了--partial --progress兩個參數,所以rsync的斷點續傳可以用下面的例子來說明:
# rsync -avzP /tmp/bigfile cnangel@10.1.6.160:/tmp/bigfile
另外,還有兩個參數也經常用到:
t:修改次數
r:遞歸方式
經常copy大文件,由於服務器、路由等網絡的不確定性,老是出現
remote server not responding.
於是查了下資料,發現rsync這個工具支持斷點續傳功能,這里介紹一下。
rsync也分服務器端和客戶端,使用man查看幫助信息,我們發現rsync有六種不同的工作模式:
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
List remote files: rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
1. 拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這
種工作模式。
2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器
。當DST
路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器
。當SRC
地址路徑包含單個冒號":"分隔符時啟動該模式。
4. 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動
該模式。
5. 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟
動該模式。
6. 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信
息即可。
下面以實例來說明:
# rsync -vazu -progress cnangel@10.1.6.160:~/works/ ~/works
v:詳細提示
a:以archive模式操作,復制目錄、符號連接,等價於 -rlptgoD 。
z:壓縮
u:只進行更新,防止本地新文件被重寫,注意兩者機器的時鍾的同時
-progress:指顯示
以上命令是保持客戶機10.1.6.160上的$HOME/works目錄和當前機器的$HOME/works目錄同
步。
這經常是我們所說的鏡像同步就是這么來的,如果斷點續傳呢?rsync完全可以做到這一點。man手冊再次告訴我們:
--partial
By default, rsync will delete any partially transferred file if the transfer is
interrupted. In some circumstances it is more desirable to keep partially transferred
files. Using the --partial option tells rsync to keep the partial file which should
make a subsequent transfer of the rest of the file much faster.
--partial-dir=DIR
A better way to keep partial files than the --partial option is to specify a DIR that
will be used to hold the partial data (instead of writing it out to the destination
file). On the next transfer, rsync will use a file found in this dir as data to
speed up the resumption of the transfer and then delete it after it has served its
purpose.
默認的情況下,當rsync傳輸中斷后,新的rsync傳輸將刪除所有的未完成的殘余文件片段,然后開始新的傳輸。而使用--partial后,將會進行我們所說的斷點續傳。
值得注意的是-P這個參數是綜合了--partial --progress兩個參數,所以rsync的斷點續傳可以用下面的例子來說明:
# rsync -avzP /tmp/bigfile cnangel@10.1.6.160:/tmp/bigfile
另外,還有兩個參數也經常用到:
t:修改次數
r:遞歸方式
