デモ(または直接本当の問題部分)
私のサーバーを検索するlynisスクリプトがあります。デモではスクリプトは重要ではありませんが、とにかくスクリプトは次のようになります。https://gitlab.com/sofibox/maxicron/-/blob/master/usr/local/maxicron/lynis/maxinis
スクリプトは完全に実行され、端末を介して手動で実行してもエラーは出力されません。
./maxinis manual --cronjob
スキャンに関する電子メールも届きます。
ただし、次のように特定の時間にcronjobを介してこのスクリプトを実行すると、
06 21 * * * root /usr/local/maxicron/lynis/maxinis cron --cronjob > /dev/null
メールを送信することも完璧に機能しますが、追加のメールを受け取りました。スケジュールされたジョブデーモン次の3つの警告出力があります。
本当の問題はここにあります:
私の質問は次のとおりです。サム上の図の警告メッセージからcronデーモンの電子メール警告を受け取りました。どのように抑えるべきですか?2行目Cronデーモンが送信した残りの出力を警告して維持しますか?
2番目の出力行は次のとおりです。
# Warning: iptables-legacy tables present, use iptables-legacy to see them
crontabでこのアプローチを試しましたが、うまくgrep -v
いかないようです。
06 21 * * * root /usr/local/maxicron/lynis/maxinis cron --cronjob > /dev/null | grep -v '# Warning: iptables-legacy tables present, use iptables-legacy to see them'
答え1
grep
これが機能しない理由は、メッセージが送信されずに送信されるため、stderr
メッセージstdout
がgrep
まったく表示されないためです。そのため、送信した後もstdout
メールを受信し続けます/dev/null
。次のようにフィルタリングできますstderr
。
somecommand > /dev/null 2>( grep -v 'unwanted error' 1>&2 )