タグ付けされた質問 「logrotate」

logrotateは、大量のログファイルを生成するシステムの管理を容易にするように設計されています。ログファイルの自動ローテーション、圧縮、削除、およびメール送信が可能です。各ログファイルは、毎日、毎週、毎月、または大きくなりすぎたときに処理されます。




4
毎日logrotateとサイズ?
logrotate configが「size」および「daily」パラメーターで指定されている場合、どちらが優先されますか?これはどこに文書化されていますか?これらのローテーションはブールOR演算として発生するようにしたいと思います。つまり、ログが1日経過している場合はローテーションされ、特定のサイズよりも大きい場合はローテーションも行われます。ただし、logrotateは現在「size」ディレクティブのみを使用しており、「daily」ディレクティブを無視しているようです。Logrotateは、1時間ごとに実行されるように設定されています。OSはlinux、Red Hat、Debianの派生物です。 また、最初に「毎日」、次にファイルの先頭から「サイズ」を指定しています。順序が重要かどうかはわかりませんが、いずれにしても、構成ファイルの最初に来る必要があります... ありがとう!
40 logrotate 

3
logrotateでdelaycompressオプションを使用する場合
のmanページにはlogrotate次のように書かれています: It can be used when some program cannot be told to close its logfile and thus might continue writing to the previous log file for some time. 私はこれに混乱しています。ログファイルを閉じるようにプログラムに指示できない場合、プログラムはいつかではなく、永久に書き込みを続けます。圧縮が次の回転サイクルに延期される場合、プログラムは次の回転サイクルの後でもそのファイルへの書き込みを継続します。問題の解決をどのように延期しますか? 私の理解ではcopytruncate、プログラムにログファイルを閉じるように指示できない場合に使用する必要があります。コピーの進行中に、ログファイルに書き込まれたデータの一部が失われることを認識しています。 私はcouchdbのlogrotateファイルを見ていましたが、両方copytruncateとdelaycompressオプションがありました。 /usr/local/couchdb-1.0.1/var/log/couchdb/*.log { weekly rotate 10 copytruncate delaycompress compress notifempty missingok } delaycompressいつそこにあるのかを使用しても意味がないようcopytruncateです。私は何が欠けていますか?
33 logrotate 

3
LogRotate for Windowsと同等ですか?
ベンダーのアプリケーションによって書き込まれている巨大なログファイルがあります。ベンダーが私たちが求めることを何もしないと仮定しましょう。そのログファイルを回転させる方法はありますか?私たちは1時間に約300 MBの書き込みを見ています。私はそれを10 MBに分割し、1日以上古いものや1000個を超えるファイルを崖から落とすようにします。 (私は知っていることを知っていますが、サービスを中断せずにWindowsでApacheログを回転させる方法はありますか?) Aha-Chompログは死んでいましたが、「chomp logrotate」を検索すると新しいサイトに移動しました。明日試してみて、気に入ったら返信します。他の誰かが使用しているソフトウェアについて、私はまだ聞きたいです。

2
logrotateはどのように「毎日」を正確に処理しますか?
私のシステムのタイムスタンプから判断すると、logrotateがcronによって実行されると、logrotateは毎日ログをローテーションします。ただし、それより前に実行した場合、ファイルは回転しません。logrotateは、それらをローテーションする必要があるかどうかをどのように知るか、履歴を保持するか、タイムスタンプを使用するのでしょうか?
30 linux  logrotate 

6
logrotateは独自のログをどこに保存しますか?
logrotateApacheログをローテーションするEC2 AWSマシンで実行しています。パックされると、Apacheログはs3fs経由でAWS S3に保存されます。問題は、最近ログをローテーションしていないことに気づいたことです。S3では、48日目から60日目までの古いログがありますが、1日目から47日目は表示されません。 私の質問は次のとおりです。logrotateは独自のログをどこに保存しますか?s3fsに何らかの問題がある可能性がありますが、何かをする前に知る必要があります。ログのどこかを見つけようとしましたが、見つけられませんでした。 何か案が?
25 logrotate 

3
ログを回転させないlogrotate
このlogrotate構成があり、Ubuntu 10.04で実行しています。 /var/log/mysql/mysql-slow.log { daily rotate 3 compress notifempty missingok create 660 mysql adm postrotate if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript } これを昨日/etc/logrotate.dに入れましたが、今日はログがローテーションされませんでした。 以下は私がやったことです: ログが実際に/var/log/mysql/mysql-slow.logにあることを確認しました ルートとして実行するとmysqladmin行が正常に機能する mysqlはmysql-slow.logに書き込むことができます 私がこれをしたとき: $ logrotate -d -f mysql-slow reading config file mysql-slow reading config info for /var/log/mysql/mysql-slow.log …
24 logrotate 


4
logrotateがファイルを移動した後、stdoutをファイルにリダイレクトし続ける方法
大量のログを画面に出力する単純なスクリプトがあり、STDOUTをファイルにパイプしてログを保存します。このスクリプトは長時間実行されるため、ログファイルをローテーションして、管理しやすい小さなファイルにチャックする必要がありました。 私が直面した問題logrotateは、現在のログファイルを新しいログファイルに移動すると、新しく作成されたログファイルにログが入力されなくなることでした。元のログファイルが削除されると、そのファイルハンドラーは失われ、リダイレクトは機能しなくなります。 また、私と同じ問題を抱えているこの投稿を見つけ、出力をリダイレクトする>>代わりに>を使用して修正できると主張しています。彼のソリューションをテストしましたが、うまくいきませんでした。リダイレクトの動作を維持する方法はありますか?


7
時々回転するテールでログを継続的に監視する
テールを使用して複数のログを継続的に監視していますが、ログがローテーションされると、そのファイルのテールは停止します。 私が理解している限り、問題はログがローテーションされると新しいファイルが作成され、実行中のテールプロセスがその新しいファイルハンドルについて何も知らないことです。

3
access.logの代わりにaccess.log.1にnginxロギング、logrotateが失敗しましたか?
/var/log/nginx/access.logへのアクセスとエラーを/var/log/nginx/errors.logに記録するように設定されたnginxインスタンスがありますが、logrotateが毎週実行されるとすぐにファイルが移動します*。初めてこれに気づいたとき、ログのローテーションから3週間が経過し、ログが巨大になっていました。実行kill -HUP `cat /run/nginx.pid`すると、nginxは再び適切な場所へのロギングを開始しましたが、問題は次の週に再び始まりました。 これがイライラするより重要な理由は、rsyslogを介してLogglyにアップロードするように設定されたログがあり、nginxがファイルへのロギングを停止するとrsyslogポーリングが発生し、アップロードが停止し、アラートが表示されないことです。 私はそれがnginxを再起動するか、設定をリロードすることと関係があるのではないかと疑っています。実行しようとしましたkill -USR1 `cat /run/nginx.pid`が、実行するまでファイルは間違った場所に記録され続けましたがkill -HUP `cat /run/nginx.pid`、問題は解決しません。 何が起こっているのでしょうか?私はlogrotateまたはnginxの管理の専門家ではないことを認めていますが、私のGoogleはこれに関して私に失敗しました。 ここに私のnginx logrotateスクリプトがあります。他に見たいものがあるかどうか教えてください。nginx.confには、出力場所の定義以外に、ロギングに関して特別なものはありません。 /var/log/nginx/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi \ endscript postrotate [ -s /run/nginx.pid ] && kill …

1
ログが特定のサイズを超えない限り、間隔に基づいてログをローテーションする方法は?
logrotateのmanページから: minsize size ログファイルは、sizeバイトより大きくなるとローテーションされますが、追加で指定された時間間隔(毎日、毎週、毎月、または毎年)の前ではありません。関連するサイズオプションは似ていますが、時間間隔オプションと相互に排他的であり、最後のローテーション時間に関係なくログファイルがローテーションされる点が異なります。minsizeを使用すると、ログファイルのサイズとタイムスタンプの両方が考慮されます。 size size ログファイルは、sizeバイトより大きくなるとローテーションされます。サイズの後にkが続く場合、サイズはキロバイト単位であると想定されます。Mが使用されている場合、サイズはメガバイト単位であり、Gが使用されている場合、サイズはギガバイト単位です。したがって、サイズ100、サイズ100k、サイズ100Mおよびサイズ100Gはすべて有効です。 私はセットのサイズをと5Mとの間隔など毎週のログは週単位で回転になるだろうと、ログのサイズが5Mを超えた場合、追加の回転が起こるだろうとの考え方。しかし、発生するのは、ログが5Mを超えない限りローテーションされないということです。これは、minsizeが行うべきことのようです。 マニュアルを誤って解釈していますか?毎週、および5Mを超える場合にログをローテーションするにはどうすればよいですか? 編集: 次の情報が関連するかどうかはわかりませんが、補足するだけです。 rsyslogを使用して、メッセージ、セキュア、cron、maillog、bootのメインロギングを実行しています。以下は、サイズと間隔が上記のように設定されている最後から2番目のログのローテーション日付とファイルサイズです。 filename rotation date file size messages 20130129 5.3MB secure 20130113 5.1kB cron 20130113 3.6kB maillog 20130113 1.1kB ご覧のように、メッセージのみがローテーションされます。 EDIT2: で確認する必要がありman logrotateます。彼らは実際にmaxsizeオプションでそれをアップグレードしました。これは私が探しているものでなければなりません: maxsize size ログファイルは、追加で指定された時間間隔(毎日、毎週、毎月、または毎年)の前でもsizeバイトより大きくなるとローテーションされます。関連するサイズオプションは似ていますが、時間間隔オプションと相互に排他的であり、最後のローテーション時間に関係なくログファイルがローテーションされる点が異なります。maxsizeを使用すると、ログファイルのサイズとタイムスタンプの両方が考慮されます。

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