crontabにはwgetドメインチェックはありません。

crontabにはwgetドメインチェックはありません。

コンピュータの起動時にファイルをダウンロードする必要があるため、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-certificateSSL証明書がまだ有効でないなどの問題が原因でコマンドが失敗するのを防ぐために、https://を指定または使用しないことがわかりました。

関連情報