Ubuntu 16.04を実行しながら、/etc/crontabに以下を追加しました。
* * * * * root wget https://www.exmaple.org/bus/ >/dev/null 2>&1
cronジョブは正常に実行されますが、結果は期待どおりに削除されず、/root/にファイルとして書き込まれます。
答え1
>/dev/null
コマンドの標準出力を削除します。あなたの例ではそうではありません。2>&1
コマンドの標準エラーが削除されるようにします。あなたの例には、wgetによって表示されるステータスとエラー情報が含まれます。
URLが有効な場合(たとえば、サーバーがページの一部のコンテンツを返す場合)、wgetはページコンテンツをファイルに保存します。これは、wgetの標準出力やwgetの標準エラーを表示しません。これはwgetがファイルに保存するいくつかのデータです。 wgetは標準ストリームではなく名前で開かれたファイルとして出力されるため、リダイレクトの影響を受けません。
出力をどこにでも保存したくない場合は、wgetに次の場所に保存するように指示してください/dev/null
。
wget -O /dev/null …
cronジョブのエラーは便利ですが、Ubuntuはデフォルトでそのエラーを削除します。 cronジョブの出力(標準出力と標準エラー)は、ローカルメールを介して送信されます。管理者はルートのメールをどのように読むべきですか?これを達成する方法を学びます。面倒なことに、wgetはすべてが正常であっても多くの出力を生成しますが、エラーのみを表示するオプションはありません。出力を保存してコマンドが成功した場合は、削除してこの問題を解決できます。
trace=$(wget … 2>&1) || echo "$trace" >&2