通过 lftp 添加镜像的时间偏移

通过 lftp 添加镜像的时间偏移

我正在 GitLab 中开发一个 CI 运行器,它应该通过 FTP 将更改的文件传输到开发环境。

lftp似乎是一个很好的解决方案,因为它易于使用并且不太复杂。

我正在使用它来传输文件:

lftp -c "set ftp:ssl-allow no; open -u $USERNAME_DEV,$PASSWORD_DEV $HOST_DEV; mirror -Rvpn -O $PATH_DEV --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

有问题的部分是-Rvpn参数设置,特别是-n。这应该只镜像较新的文件,这很可能通过检查文件更改时间来工作。

现在我的存储库使用正确的时间,但我的服务器提前了一个小时(GMT + 2 而不是 +1),这将导致检查较新文件时出现错误。

我可以删除它-n,但这样整个存储库就会被克隆,而不仅仅是更改的(因此是较新的)文件。

有没有办法定义时间偏移lftp,以便将文件更改日期添加 +1 小时或类似内容?我检查过了手册但没有发现类似的东西。

答案1

如果您查看链接的手册,您会发现lftp有一个选项可让您定义远程站点的时区。尝试设置它并查看何时lftp正确补偿可能是值得的。

ftp:时区(字符串)

假定 LIST 命令返回的列表中的时间使用此时区。此设置可以是 GMT 偏移量 [+|-]HH[:MM[:SS]] 或任何有效的 TZ 值(例如欧洲/莫斯科或 MSK-3MSD、M3.5.0、M10.5.0/3)。默认值为 GMT。将其设置为空值以假定环境变量 TZ 指定的本地时区。

此外,它还有一个忽略时间的开关(--ignore-time这可能使您能够使其仅依赖于文件大小和一些开关(--newer-than--older-than)来定义“重要的”时间,因此您可以以并非所有文件都被传输的方式进行设置。

相关内容