GNU/Linux >> Linux の 問題 >  >> Linux

ログを 1 時間ごとにローテーションするように logrotate を設定するにはどうすればよいですか?

お使いのOSによって異なります。一部の (すべて?) Linux ディストリビューションには /etc/cron.hourly ディレクトリがあります。 1 時間ごとに実行される cron ジョブを配置できます。

他の人はディレクトリ /etc/cron.d/ を持っています .そこには、crontab エントリの通常の cron 設定を使用して、特別なユーザーとして実行される cron ジョブを配置できます (ユーザー名を指定する必要があります)。

/etc/cron.daily/ で標準のログ ローテーション スクリプトの代わりにこれらのいずれかを使用する場合 そのスクリプトをそこにコピーして cp /dev/null 元の位置に。それ以外の場合は、logrotate patch-update によって再アクティブ化されます。

適切な時間ごとのローテーションのために、dateext にも注意してください。 ディレクティブはではない 設定。その場合、デフォルトでは、最初にローテーションされたファイルに YYYYMMDD のような現在の日付の拡張子が付けられます。次に、同じ日に 2 回目の logrotate がアクティブになると、size しきい値を超えました。

その理由は、ローテーションされるファイルの新しい名前が既に存在し、logrotate がコンテンツを既存の古いファイルに追加しないためです。たとえば、RHEL と CentOS では、dateext ディレクティブはデフォルトで /etc/logrotate.conf に与えられます .その行を削除またはコメントした後、ローテーションされたファイルは rotate に到達するまで拡張子として実行中の番号を取得します。 価値。このようにして、1 日に複数のローテーションを実行できます。


logrotate の場所を変更する場合は、ニルスの回答に追加するだけです スクリプトを Debian または Ubuntu ボックスで使用する場合は、おそらく dpkg-divert を使用する方が安全です ファイルをコピーして /dev/null をコピーする代わりに 元の位置へ 例:

dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate

もう 1 つのオプションは、logrotate コマンドを crontab リストに追加することです。その後、1 時間ごとに実行されます。

crontab -e

以下の行を crontab リストに追加

0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file

Linux
  1. / etc / motdはどのように更新されますか?

  2. CentOS / RHEL :削除された /etc/passwd ファイルから回復する方法

  3. CentOS / RHEL :logrotate を使用して /var/log/wtmp および /var/log/btmp ファイルをローテーションする方法

  1. 22 以外のポートで SSH を実行するにはどうすればよいですか?

  2. 新しい irssi 接続にデフォルトのニックネームを設定するにはどうすればよいですか?

  3. 自分のマシンでスケジュールされているすべての cron ジョブのリストを取得するにはどうすればよいですか?

  1. etc ディレクトリの chmod を元に戻すにはどうすればよいですか?

  2. log-rotate の変更を有効にする方法

  3. /etc/issues をセットアップして eth0 の IP アドレスを表示する方法