Performance

LFTP - 通過 lftp mirror –reverse 上傳時從遠端伺服器中刪除文件

  • April 3, 2019

我正在使用一個 shell 腳本來執行lftp mirror --reverse將文件和目錄上傳到遠端伺服器。就在此之前,它使用glob -a rm -r -f *. 問題是,它並沒有那麼快。整個操作需要幾分鐘,尤其是遞歸刪除。我在幾百個文件中上傳了幾兆字節的數據,但其中大部分都沒有改變。我正在通過 FTPS 協議進行連接。

問題

如何提高我的腳本的性能?

我正在考慮僅上傳新文件或在本地更改的文件,同時從遠端伺服器中刪除本地電腦上不存在的文件。可悲的是,我不知道這是否可能或如何實現。

整個腳本:

lftp $host << EOF

user $username $password
cd $destination_directory
glob -a rm -r -f *
mirror --reverse $local_directory .
exit

EOF

解決方案就在眼前。在瀏覽 LFTP 手冊時,我發現該mirror命令有一個--delete非常適合我需要的選項。

--delete

刪除源中不存在的文件 ~ LFTP Manual

我變了

glob -a rm -r -f *
mirror --reverse $local_directory .

mirror --reverse --delete $local_directory .

引用自:https://unix.stackexchange.com/questions/510295