更正LFTP命令以仅上载更新的文件

时间:2016-03-11 07:31:51

标签: lftp codeship

我正在使用codeship.io将代码存储库中的文件上传到没有SSH的共享主机。

这是原始命令,需要两个小时才能完成:

lftp -c“open -u $ FTP_USER,$ FTP_PASSWORD ftp.mydomain.com; set ssl:verify-certificate no; mirror -R $ {HOME} / clone / / public_html / targetfolder”

我尝试添加-n,它应该只上传较新的文件。但我仍然可以从流媒体日志中看到正在上传一些未更改的文件:

lftp -c“open -u $ FTP_USER,$ FTP_PASSWORD ftp.mydomain.com; set ssl:verify-certificate no; mirror -R -n $ {HOME} / clone / / public_html / targetfolder”

正确上传仅更新的文件的正确命令是什么?

2 个答案:

答案 0 :(得分:1)

命令正确。

问题是为什么lftp认为文件“已更改”。它上传一个文件,如果它丢失了,不同大小的文件有不同的修改时间。

您可以尝试在lftp上传文件的目录上执行“ls”,查看文件是否真的存在,具有相同的大小以及相同或更新的修改时间。

如果由于某种原因修改时间较长,请将--ignore-time添加到镜像命令。

答案 1 :(得分:0)

Codeship在部署之前首先构建代码。

这意味着Codeship临时服务器中的代码比管道中的其他任何代码都要新,即使代码本身可能没有更改。

这就是为什么当您使用lftp的“仅较新的文件”选项时,它仅表示所有内容的原因。

据我所知,您不能仅上传实际的较新文件。