我目前正在使用 SFTP 服务器,旨在将其文件夹与相应的本地目录同步。需要注意的是,我无法控制 SFTP 服务器,并且其中的文件会不断自动添加和删除。因此,我的目标是检索这些文件,而不会覆盖已传输的文件。
最初,我考虑了两种方法:
手动开发脚本,结合缓存机制来跟踪已传输的文件并启动新添加文件的同步。
发现一个可以简化这个过程的工具,让我考虑 rsync。
然而,我遇到了一个挑战,因为 shell 访问受到限制,而我假设 rsync 可以通过 SFTP 运行的假设被证明是错误的。下面是我尝试的 rsync 命令的示例:
rsync -av --ignore-existing \
-e 'sshpass -p$($password) ssh -o StrictHostKeyChecking=no' \
$username@$username:$remoteBaseDirectory/ $localBaseDirectory"
不幸的是,此命令不起作用,因为 SFTP 服务器上没有安装 rsync。
现在,我的问题是:如何建立一个可靠的同步过程,特别关注“--ignore-existing”选项,而不必从头开始构建它?
我通常在 Ubuntu 中使用 powershell,但如果需要改变环境,这也不是问题。
非常感谢,祝您有愉快的一天。
此致,