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