2

以下に示すように、UNIXbokでのシェルスクリプト実行の標準出力とエラーを追加しています

/home/mydir/shellScript.sh >> /home/mydir/shellScript.log 2>&1

現在、ログを30日間さかのぼって保持する方法を考えています。そうしないと、ログファイルのサイズが増え続けます。誰かが同じ周りの推奨事項を提供できれば幸いです。

4

4 に答える 4

4

この種のシンニングは、通常、などのツールを使用して行われlogrotateます。

たとえば、Apacheのログを使用すると、以前は次のようになりました。

  • 1日に1回、現在のファイルを別のファイルに移動し(1日に1つのログファイルを作成するため)、前日の結果のファイルをgzipします。
  • 1週間以上経過したアーカイブファイルを削除します

だから、あなたはそれを使ってあなたが求めているものを手に入れることができるかもしれないと思います。

于 2011-07-20T22:09:56.877 に答える
3

これは長時間実行されるスクリプト(デーモンなど)ですか?それとも、何かをしてすぐに終了しますか?今日の日付に基づいてログファイルの名前を動的に作成できるため、日付が変更されるたびに新しいファイルが生成されます。

#/bin/sh
now=`date +%F`
/home/mydir/shellScript.sh >> /home/mydir/shellScript-$now.log 2>&1
previous=`date --date='30 days ago' +%F`
rm -f /home/mydir/shellScript-$previous.log 2>&1

(古いログの削除を追加)。

于 2011-07-20T22:13:53.643 に答える
1

Pascal MARTINは正しいです-ほとんどのUNIXシステムに含まれているように、構成ファイルをに入れる/etc/logrotate.dか、ファイルの最後にエントリを追加するのは簡単なことです。非常にわかりやすい設定ファイルで、約5分かかります。理解するためのマニュアルページで。最も簡単で保守しやすいソリューションとしてお勧めします。/etc/logrotatelogrotate

于 2011-07-21T19:47:18.250 に答える
0

含まれているあなたの問題への多くの文脈はありません。

提供されている両方のソリューションに同意します。

また、ログファイルの命名と管理に関する私の2つのかなり長い議論を指摘したいと思います;-)。

バッシュ配管の出力とプログラムの入力

2パネルファイルマネージャーユーザーのためのコマンドラインの知恵

これらの助けを願っています。

于 2011-07-20T23:22:20.830 に答える