我在服务器上有一个 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
从未被调用。
当戈达德的某个人从他们的...无论什么...中解脱出来并修复他们的服务器时,您将能够看到文件按预期创建。