下面的命令對我的作品很大的單個文件的本地目錄:同步通過ssh
scp [email protected]:foobar.txt /some/local/directory
我想要做的就是做遞歸(即所有子目錄/服務器上的指定路徑的子文件) ,合併文件夾並覆蓋本地已存在的文件,最後只下載服務器上小於特定值(例如10 MB)的文件。
我該怎麼做?
下面的命令對我的作品很大的單個文件的本地目錄:同步通過ssh
scp [email protected]:foobar.txt /some/local/directory
我想要做的就是做遞歸(即所有子目錄/服務器上的指定路徑的子文件) ,合併文件夾並覆蓋本地已存在的文件,最後只下載服務器上小於特定值(例如10 MB)的文件。
我該怎麼做?
使用rsync。
你的命令很可能是這樣的:
rsync -az --max-size=10m [email protected]:foobar.txt /some/local/directory
-a
(歸檔模式 - 同步是遞歸的,所有權轉移,屬性,除其他事項外符號連接) -z
(壓縮傳輸)
--max-size
(僅複製文件達到一定大小)
還有很多可能適合的標誌。檢查文檔的更多細節 - http://linux.die.net/man/1/rsync
第一個選項:使用rsync
。
第二個選項,並且它不會是一個襯墊,但在三條,四線來完成:
創建使用ssh
在遠程系統上的tar歸檔。 將遠程系統中的tar複製到scp
。 在本地解壓歸檔。
如果歸檔文件的創建變得有點複雜,使用find
和/或tar
幾個選項還是比較實用的,以創建一個腳本這將做局部,用scp
上傳在服務器上涉及,才把用ssh
遠程執行。
這確實是一個不錯的選擇,但它沒有考慮到我想擺脫大文件的事實。有任何想法嗎? – user2295350
要爲當前目錄中小於4k的文件(可以放在一個文件中,傳輸到遠程主機並使用ssh在那裏執行)tar文件:tar cf a.tar $ {find。 -type f -size -4096c}' – piokuc