我从异地的第三方服务器检索一个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