Ubuntuデスクトップとdebianサーバーには、毎分実行する必要があるスクリプト(私のスペースオンラインbrowsergameの分ティックを呼び出すスクリプト)があります。
問題は、debian派生ではcronが/var/log/syslog
実行するたびにログを記録することです。私はそれが繰り返し実行されたメッセージを繰り返し見ることになります/var/log/syslog
:
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
プログラムの出力を抑制するために/dev/null
、たとえば、プログラムからすべてのエラーおよび警告メッセージを隠すためにリダイレクトできることを知っています。このようにcrontabに行を作成できます。
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
しかし、私はcronジョブを実行し、生成されたすべての出力またはエラーがNULLにパイプされることを確認したいので、syslogでメッセージを生成せず、電子メールを生成しません
編集:
cronログを変更して、ここで提案されているような別のログにリダイレクトするソリューションがあります/etc/syslog.conf
しかし、欠点は、すべてのcronjobのすべての出力がリダイレクトされることです。
どういうわけか、単一のcronjobを個別のログファイルにリダイレクトすることはできますか?できれば、cron.hourly
ファイル自体の内部で構成可能です。
MAILTO=""
crontabの1行目はメールをブロックします。また、すべての出力を抑制している場合は、コマンドラインで完全な三連文字を使用します。3種類すべてがこの文字列によってリダイレクトされ >/dev/null 2>&1
ます。
MAILTO=""
cronファイルの先頭に置くこともできます。これにより、すべてのメールが抑制されます。また、ジョブ出力をsyslogに送信するcronデーモンについて聞いたことがありません(可能性があると思います)。