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

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

我正在从异地第三方服务器检索 xml 文件并将其复制到我的本地服务器。问题是,异地服务器偶尔会停机进行维护,在此期间我不希望 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

答案1

你可以下载到另一个文件并覆盖 wufoo.xml,但前提是 wget 的退出代码可以:

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

答案2

如果文件不存在则仅下载该文件。

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

相关内容