Linux - 定期移动目录内容

Linux - 定期移动目录内容

我们公司的合作伙伴会将文件(通常为几 GB)上传到我们其中一个外部服务器的目录中。
我会将这些文件从该目录移动到我们的内部网络,最终供我们的分析师使用。

到目前为止,上传问题已通过 chroot jail 解决并且运行良好,文件到达我们的内部网络时发生的情况也是一样的。

但是,传输到我们的内部网络是有问题的。我只需使用 --remove-source-files 和 find 来 rsync 它们即可删除空目录。
问题是,目录上的 cron 作业轮询间隔需要很短(我们希望每分钟一次),而传输时间相当长(我们办公室的 DSL 很慢),显然我们不想每 5 分钟上传一次相同的文件。
这个问题有好的解决方案吗?我可以将内容移动到临时目录,然后从那里 rsync,但我觉得存在更优雅的解决方案。

答案1

锁运行是专门为这个用例设计的:

$ crontab -l
* * * * * lockrun --lockfile=/tmp/.partner-sync -- rsync src/ dest/

这将每分钟触发一次,但仅在/tmp/.partner-sync尚未锁定时运行。

答案2

最后,我选择了仅仅因为 lockrun(Darren Chamberlain 提到的)没有维护的 deb 包。

相关内容