我需要在计算机启动时下载一个文件,因此我在 cronjob 中创建了这一行:
@reboot wget -a /log/here -O /save/here https://domain.tld/file.ext
不幸的是,它在 处创建了一个空白文件,/save/here
并在 处给了我一个错误/log/here
。
错误说:
Resolving domain.tld (domain.tld)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ■domain.tld■
这是因为名称解析在启动过程的早期不可用吗?除了用绕过名称解析的 IP 地址替换域名之外,我还能做些什么吗?我想将这一切都保留在 crontab 中。
答案1
用一个系统依赖于 的单元文件network
,或者您可以尝试以下操作:
@reboot until ping -c1 dk &>/dev/null; do sleep 2; done; wget -a /log/here -O /save/here https://domain.tld/file.ext
(dk
是我所知道的最短的域名)
答案2
我发现在启动时使用 wget 最可靠的方法是在/etc/rc.local
.另外,由于我使用的计算机没有内置电池,而是依靠网络时间协议在启动时设置时钟,我发现我还必须指定--no-check-certificate
或不使用 https:// 来阻止该命令由于 SSL 证书尚未生效等问题而导致失败。