OSXでのlogrotateと同等


52

logrotateはOSXのどこかに隠れていますか、または同等のものがありますか?にありません/usr/sbin


newsyslogがあることに気付きましたが、それはまったく同じではなく、rootが必要です。
スティーブベネット

logrotateを移植できますか?
トム・オコナー

/ etc / periodicを確認してください。ログのローテーションは、デフォルトでシェルスクリプトのセットとして実装されていると思います。また、ファイルサイズに基づいて行う方法については、newsyslog(/etc/newsyslog.dおよびmanページ)を参照してください。
malcolmpdx

ヒントをありがとう-確かに/ etc / periodicにスクリプトがあります
スティーブベネット

@SteveBennett他にどのように人々が彼らの「批評家」バッジを取得するつもりですか?一部の人々はバッジと評判のためだけにここにいます、あなたは知りませんでした。
マークフィッシャー

回答:


23

ブライアンアームストロングの答えに基づいて、もう少し説明と修正を加えたものを紹介します。これは、HomebrewによってインストールされたOSX上のpostgresによって作成されたログを処理します。に位置/etc/newsyslog.d/postgresql.conf

# logfilename                           [owner:group]      mode count size(KB)  when  flags [/pid_file]                            [sig_num]
/usr/local/var/postgres/postgresql.log  :                  600  2     2048      *     J     /usr/local/var/postgres/postmaster.pid 

これにより、サイズが2MBに達するとログファイルがローテーションされ、2つのアーカイブが保持され(合計6MBのストレージが使用されます)、アーカイブがbzip2-compressされます。これは、新しいログエントリを取得し、マシンを再起動せずにディスクスペースを実際に解放するために必要なログファイルを再度開くようにpostgresプロセスに通知します。

サイズはバイトではなくKBであることに注意してください。

を使用して、構成ファイルをテストできます(ファイルに影響を与えることなく)sudo newsyslog -nvv

newsyslogのドキュメントは、http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5 )にあります。また使用:http : //www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html


21

OS Xには、問題のログのタイプに応じて、ログをローテーション/期限切れなどにするいくつかの方法があります。

  1. 通常のログファイル(つまり、連続的に追加されるテキストファイル)の場合、newsyslogはサイズや時間に基づいてローテーションできますが、オプションの数は少ないようですlogrotate/etc/newsyslog.confand によって構成されます/etc/newsyslog.d/*(通常、/etc/newsyslog.d/管理リストにログを追加するにはファイルを追加する必要があります)。
  2. OS Xのsyslogシステムは、このプレーンテキスト形式からデータベース形式へ、主にに移行しています/var/log/asl/。私はまだこのシステムを完全には理解していませんが、このデータベースはaslmanagerによって削除されているよう/etc/asl.confです。
  3. 個別のログ(エントリ/Library/Logs/CrashReporter/)が個別のファイル(主に)として追加されているディレクトリの場合、ファイルはによって削除され/etc/periodic/daily/100.clean-logsます。そのポリシー(スキャンするディレクトリとファイルを残す時間)はで設定されますが/etc/defaults/periodic.conf、それらをオーバーライド/変更する場合は/etc/periodic.conf.local、そこにカスタマイズを作成して配置する必要があります。

回転させたいものがこれらのモデルのいずれにも適合しない場合は、独自のスクリプトを/etc/periodic/daily/(毎朝午前3時15分に実行)、/etc/periodic/weekly/(毎週土曜日の午前3時15分に)、または/etc/periodic/monthly/(最初の毎月午前5時30分)。


11

newsyslogOSXで自動的に実行されます。このような構成ファイルを使用/etc/newsyslog.d/rails_apps.confして、devログファイルを5MBにトリミングします

# logfilename                           [owner:group]   mode count size     when  flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log                     666  0     5242880  *     G

サイズはKで、所有者:グループが空白であっても ":"が必要です
ブライアンアッシュ

9

Homebrewを介してlogrotateを取得できます。これを設定する際の注意事項を次に示します。

インストール

brew install logrotate

ログローテーションを構成する

ログローテーション設定ファイルは /usr/local/etc/logrotate.d/

設定ファイルを編集します。例えば、私が導入したいくつかの「/var/log/tend_*.log」ファイルをローテーションしたかった:

sudo vi /usr/local/etc/logrotate.d/tend.conf

内容: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }

試してみる

sudo logrotate -v -f /usr/local/etc/logrotate.d

サービスを開始

sudo brew services start logrotate

再起動サービス

sudo brew services restart logrotate


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.