我正在使用一个 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 .