如果服务器不可用,则停止 wget 破坏本地文件

如果服务器不可用,则停止 wget 破坏本地文件

我在服务器上有一个 cron 作业,每天用于wget从 NASA 服务器下载一次“地球方向参数”和闰秒数据。具体来说:

wget https://gemini.gsfc.nasa.gov/500/oper/solve_apriori_files/usno_finals.erp -O .eops
wget https://gemini.gsfc.nasa.gov/500/oper/solve_apriori_files/ut1ls.dat -O .ut1ls

这很好用。但是,当服务器不可用时,似乎wget会破坏我的本地文件(文件大小为 0)。有没有办法在wget服务器不可用时中止并使本地文件不受影响。(这些文件包含几个月的预测,因此在服务器恢复之前几天没有更新不是问题)。

答案1

这是记录的行为-O,所以如果这不是您想要的行为,那么您不应该使用它。

默认情况下,wget文件名称使用服务器指定的相同名称(取决于版本),如果没有指定,则使用 URL 的基本名称。如果您想要不同的名称,则应该利用这一点。

例如,您可以下载文件,然后只有在下载成功时才将其复制覆盖现有文件。

wget https://gemini.gsfc.nasa.gov/500/oper/solve_apriori_files/usno_finals.erp && \
mv usno_finals.erp .eops

因为wget超时,没有usno_finals.erp创建,wget返回错误退出代码,并且mv从未被调用。

当戈达德的某个人从他们的...无论什么...中解脱出来并修复他们的服务器时,您将能够看到文件按预期创建。

相关内容