Performance
LFTP - 通過 lftp mirror –reverse 上傳時從遠端伺服器中刪除文件
我正在使用一個 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 .