実行中に何百万行もの行をコンソールにダンプするプロセスがあります。私はcronjobでこれを実行したいと思いますが、マルチMBメールの送信を避けるために、私は成功(exit == 0)の場合の出力を0行に制限したいと思います。 != 0)を最後の20行に追加します。Cronジョブ:最後の20行を維持する
少しの努力でこれを達成するためのアイデアはありますか?たぶん、数行のperlや標準ツールのスマートな使用ですか?
実行中に何百万行もの行をコンソールにダンプするプロセスがあります。私はcronjobでこれを実行したいと思いますが、マルチMBメールの送信を避けるために、私は成功(exit == 0)の場合の出力を0行に制限したいと思います。 != 0)を最後の20行に追加します。Cronジョブ:最後の20行を維持する
少しの努力でこれを達成するためのアイデアはありますか?たぶん、数行のperlや標準ツールのスマートな使用ですか?
crontabに直接出力するか、またはラッパースクリプトでパイプを出力するだけです。例えば
10 * * * * myprogram 2>&1 | tail -20
これは、常に最後の20行を出力するかどうかを示します。 出力が成功しないようにしたい場合やエラーの場合は、cronから呼び出すラッパースクリプトを作成することができます。
#!/bin/sh
myprogram 2>&1 | tail -20 >/tmp/myprogram.log
if [ $? != 0 ] ; then
echo "Failed!"
cat /tmp/myprogram.log
fi
rm /tmp/myprogram.log
あまりにも暑いです。もう思うことはできない。もちろん、シンプルなテールができます:) –
tail commandは、あなたがしようとしていることに適していますか?おそらく、コンソール出力がファイルでも利用可能な場合は(tee、多分)?
tail -n 20はどうですか? –
CRONではスクリプトを呼びます。スクリプトでは、プロセスのEXITステータスを表示するロジックを開発する必要があります。それがエラーの場合は、メールのみtail -20 * log。 – Guru