私のUbuntuデスクトップとDebianサーバーには、毎分実行する必要があるスクリプト(私の分を呼び出すスクリプト)があります。宇宙オンライン検索ゲーム)。
問題は、Debian 派生で/var/log/syslog
実行されるたびに cron ログが記録されることです。結局、次のようなメッセージが繰り返されるのがわかります/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
しかし、cronjobを実行し、生成された出力やエラーがNULLにパイプされ、システムログにメッセージや電子メールが生成されないようにしたいと思います。
編集:
cron-logを別々のログにリダイレクトするソリューションがありますここで提案されているように変更して/etc/syslog.conf
欠点は、すべてのcronjobのすべての出力がリダイレクトされることです。
単一のcronjobだけが別々のログファイルにリダイレクトできますか?cron.hourly
ファイル自体の内部で構成することをお勧めします。
ベストアンサー1
次のようにラインを作成します。
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
その後、STDOUT(1)とSTDERR(2)がキャプチャされます/dev/null
。
メール送信
電子メールを設定してリセットして電子メールを無効にすることもできます。MAILTO=""
これにより、電子メールの送信が無効になります。
はい
MAILTO=""
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
MAILTO="[email protected]"
* * * * * root /usr/local/sbin/myothercommand.sh
追加情報
通常、次の種類のメッセージが届きます/var/log/syslog
。
Nov 11 08:17:01 manny CRON[28381]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
これは、cronjobsディレクトリが実行されたというcronを介した通知です。このメッセージは、これらの操作と直接関係しませんが、crond
デーモンから直接提供されます。これを行うことはあまりありませんが、crond
ログを介して何が起こっているのかを確認できる唯一のウィンドウである可能性があるため、無効にしないことをお勧めします。
彼らがあなたを非常に迷惑にするならば、あなたはいつでも通過することができます/var/log/syslog
。/etc/syslog.conf
syslog