
誰か、以下の cron ジョブで「2>&1」が何を意味するのか説明してもらえますか?
0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1
答え1
これは、stderr
( 2
- 実行されたコマンドまたはスクリプトからのエラー メッセージを含む) が( - コマンドの出力)>&
にリダイレクトされ ( ) 、後者が(null デバイス) にリダイレクトされることを意味します。stdout
1
/dev/null
この方法では、実行されたコマンドによって発行される可能性のあるすべてのメッセージを抑制できます。 cron では、サービス スクリプトからの無関係なメッセージが大量にスパムされるのを避けるために、この方法がよく使用されます。 ただし、一部のメッセージは重要である可能性があるため、注意が必要です。
出力リダイレクトの詳細については、Linux Documentation Project を参照してください。ここそしてここヌルデバイスは次のように記述されるここ。
答え2
@digijayの回答を少し詳しく説明したいと思います。何> /dev/null 2>&1
をする" しかし "なぜそこにあるのか「」。
1.Cronアクションは、さまざまなシステムファイルに適切なデータを書き込みます。たとえば、cronエラーを記録する一般的な宛先/var/log/cron
、/var/log/messages
およびが含まれます/var/log/syslog
。
2.デフォルトでは、cron ジョブは cron ジョブを実行しているユーザー アカウントに電子メールを送信します。
だから、そのような事態を避けるために1そして2(情報やエラー ログを表示したり、cron から電子メールを受信したりしたくない、cron をサイレントに動作させたいだけの場合)、およびを にリダイレクトする必要がstderr
ありstdout
ます/dev/null
。