linux apache cron-job – 首先检查文件

我从异地的第三方服务器检索一个XML文件,并将其复制到我的本地服务器。 问题是,有一段时间,离线服务器closures维护,在这段时间,我不希望crontab命令覆盖我的本地文件。 有没有一种方法可以检查以确保文件在复制之前先存在?

当前的crontab

0 * * * * username wget -O /home/www/inc/xml/wufoo.xml https://AAAA-BBBB-CCCC-DDDD:[email protected]/api/v3/reports/123456/entries.xml 

只有当wget的退出代码正常时,才可以下载到不同的文件并覆盖wufoo.xml:

 wget -O /home/www/inc/xml/wufoo.xml.new https://url/entries.xml && mv /home/www/inc/xml/wufoo.xml.new /home/www/inc/xml/wufoo.xml 

您可以将其移到单独的脚本中,以便从crontab中调用该脚本。

编辑:或尝试curl,默认情况下,它似乎不会截断输出文件: curl -o /home/www/inc/xml/wufoo.xml https://url/entries.xml

这应该只下载该文件,如果它不存在。

 if [ ! -f /home/www/inc/xml/wufoo.xml ]; then wget -O /home/www/inc/xml/wufoo.xml https://AAAA-BBBB-CCCC-DDDD:[email protected]/api/v3/reports/123456/entries.xml; fi