linux遠程復制文件命令小總結
我平時在工作中服務器遠程拷貝文件一般會用到scp和rsync
scp
scp是secure copy的簡寫,用于在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。當你服務器硬盤變為只讀 read only system時,用scp可以幫你把文件移出來。
> scp [參數] [原路徑] [目標路徑]
-1 強制scp命令使用協議ssh1 -2 強制scp命令使用協議ssh2 -4 強制scp命令只使用IPv4尋址 -6 強制scp命令只使用IPv6尋址 -B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語) -C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能) -p 留原文件的修改時間,訪問時間和訪問權限。 -q 不顯示傳輸進度條。 -r 遞歸復制整個目錄。 -v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用于調試連接,驗證和配置問題。 -c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。 -F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。 -i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。 -l limit 限定用戶所能使用的帶寬,以Kbit/s為單位。 -o ssh_option 如果習慣于使用ssh_config(5)中的參數傳遞方式, -P port 注意是大寫的P, port是指定數據傳輸用到的端口號 -S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。
//將本地的rumenz.txt拷貝到遠程rumenz.com服務器的tmp目錄 > scp rumenz.txt rumenz@rumenz.com:/tmp //將遠程遠程rumenz.com服務器目錄的rumenz.txt文件拷貝到本地 > scp rumenz@rumenz.com:/tmp/rumenz.txt .
//將本地的rumenz目錄拷貝到遠程rumenz.com服務器的tmp目錄 > scp -r rumenz rumenz@rumenz.com:/tmp //將遠程遠程rumenz.com服務器目錄的rumenz目錄文件拷貝到本地 > scp -r rumenz@rumenz.com:/tmp/rumenz .
rsync
rsync是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地復制,或者與其他SSH、rsync主機同步。
rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [USER@]host:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... [USER@]HOST::SRC DEST rsync [OPTION]... SRC [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
-a 包含-rtplgoD -r 同步目錄時要加上,類似cp時的-r選項 -v 同步時顯示一些信息,讓我們知道同步的過程 -l 保留軟連接 -L 加上該選項后,同步軟鏈接時會把源文件給同步 -p 保持文件的權限屬性 -o 保持文件的屬主 -g 保持文件的屬組 -D 保持設備文件信息 -t 保持文件的時間屬性 --delete 刪除DEST中SRC沒有的文件 --exclude 過濾指定文件,如--exclude “logs”會把文件名包含logs的文件或者目錄過濾掉,不同步 -P 顯示同步過程,比如速率,比-v更加詳細 -u 加上該選項后,如果DEST中的文件比SRC新,則不同步 -z 傳輸時壓縮 -e 指定所要使用的遠程shell程序,默認為ssh。--port 連接daemon時使用的端口號,默認為873端
//將本地的rumenz.txt拷貝到遠程rumenz.com服務器的tmp目錄 > rsync rumenz.txt rumenz@rumenz.com:/tmp //將遠程遠程rumenz.com服務器目錄的rumenz.txt文件拷貝到本地 > rsync rumenz@rumenz.com:/tmp/rumenz.txt .
//將本地的rumenz目錄拷貝到遠程rumenz.com服務器的tmp目錄 > rsync -r rumenz rumenz@rumenz.com:/tmp //把rumenz.com服務器上的rumenz目錄拷貝到192.168.0.111服務器上 > rsync -r rumenz@rumenz.com:/tmp/rumenz/ root@192.168.0.111:/home/ //排除某個目錄,--exclude后面的路徑不能為絕對路徑,必須為相對路徑才可以,否則匹配不上,就不會被排除掉 > rsync -r --exclude=rumenz/bin rumenz@rumenz.com:/tmp/rumenz root@192.168.0.111:/home/
> rsync -avz root@rumenz.com:/opt/pkg /opt/pkg
小總結
scp 適合小文件的拷貝,大文件較大,比如拷貝測序數據,建議使用rsync,因為scp不具有續傳的功能,傳輸過程中失敗了就需要重新開始,而rsync不會,如果中斷,只需要重新運行拷貝的命令即可。此外,scp所占資源相對較少,不會提高多少系統負荷。雖然 rsync比scp會快一點,但當小文件眾多的情況下,rsync會導致硬盤I/O非常高。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。