我正在使用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”
正确上传仅更新的文件的正确命令是什么?
答案 0 :(得分:1)
命令正确。
问题是为什么lftp认为文件“已更改”。它上传一个文件,如果它丢失了,不同大小的文件有不同的修改时间。
您可以尝试在lftp上传文件的目录上执行“ls”,查看文件是否真的存在,具有相同的大小以及相同或更新的修改时间。
如果由于某种原因修改时间较长,请将--ignore-time
添加到镜像命令。
答案 1 :(得分:0)
Codeship在部署之前首先构建代码。
这意味着Codeship临时服务器中的代码比管道中的其他任何代码都要新,即使代码本身可能没有更改。
这就是为什么当您使用lftp
的“仅较新的文件”选项时,它仅表示所有内容的原因。
据我所知,您不能仅上传实际的较新文件。