0

カスタム スクリプトを実行しています。スクリプトの出力といくつかの実行ステージをログ ファイルにリダイレクトしたいと考えています。

私の要件は - ログ ファイルのサイズが 20 MB を超えた場合、内容を新しいファイルに移動し、スクリプトでログ ファイルを再作成します。いつでも、最近のログ コンテンツの 1 つのバックアップを作成します。私は以下のロジックを考え出そうとしました:

if [  -e "$logfile" ]

then

    logsize=ls -l $logfile |awk '{print $5}'

    ls -l $logfile |awk '{print $5}'

    if [ "$logsize" -gt 2097152 ]

    then

        mv $logfile $(date +"%Y%m%d%H%M").log

        touch $logfile

    fi

else

    touch $logfile

fi

専門家の意見を聞きたいのですが、このタスクを実行するための他の効率的な方法があれば教えてください。

4

1 に答える 1

1

logrotate代わりにコマンドを使用するか、カスタム スクリプトを作成する必要があると思います。

このガイドを読んでください

要件のサンプル構成は次のようになります。

/var/log/logfile {
   missingok
   size 20M       
   rotate 5

}

于 2013-06-21T10:04:26.233 に答える