LFTP - 通过 lftp 镜像上传时从远程服务器删除文件 --reverse

LFTP - 通过 lftp 镜像上传时从远程服务器删除文件 --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

答案1

解决方案就在眼前。在深入研究 LFTP 手册时,我发现该mirror命令有一个--delete完全适合我的需求的选项。

--delete

删除源中不存在的文件〜LFTP手册

我变了

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

mirror --reverse --delete $local_directory .

相关内容