logrotateに関する質問

このQ&Aのポイント
  • CentOS6.3でlogrotateの対象ファイルのパスを誤って設定してしまいました。
  • 修正したいファイルはiptables.logです。
  • iptables.logから1日ずつログを取り出してローテーションさせる方法を教えてください。
回答を見る
  • ベストアンサー

logrotateにつきまして

CentOS6.3にて logrotateの対象ファイルのパスを間違って記述してました。 (/var/log/iptables.log を /home/iptables.log と記述していました) 【/var/lib/logrotate.status 中身】  "/home/iptables/iptables.log" 2013-2-21" 【一次対応】 /etc/logrotate.d/iptables ファイルの中身を、/var/log/iptables/iptables.log と修正し、 コマンド:logrotate -dv /etc/logrotate.d/iptables  を実行しましたが、下記エラー?が表示されました 【エラー】 reading config file /etc/logrotate.d/iptables reading config info for /var/log/iptables/iptables.log Handling 1 logs rotating pattern: /var/log/iptables/iptables.log after 1 days (30 rotations) empty log files are rotated, old logs are removed considering log /var/log/iptables/iptables.log log does not need rotating 【質問】 iptables.log" 2013-2-21"から1日ずつログを取り出し、ロテートさせて ファイルを作成したいのですが、どのように対応すればよいのでしょうか? ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

エラーではないでしょう。単に前回ローテートからまだ指定間隔に達していないのでローテートする必要がないというメッセージです。 なおきっかり0時を境にローテートすることはデフォルトのままではできません。CentOS6だとanacronにより05:01に起動されるので、その時刻が境目となります。 0:00に切り替えたければanacrontabもしくはcrontabを書き換えてください。 それでも数秒のずれは起きるかもしれませんが、それも許容できなければcronologなどのラッパーをかますしかありません。

ShiftTail
質問者

お礼

anacrontabを書き換えました。また -fオプションを使用して強制的に切り替えました。 ありがとうございました。

関連するQ&A

  • logrotateの設定にういて

    掲題の通り、logrotateの設定についてご教授いただきたいのですが、 現在、/etc/logrotate.confには以下のように設定を入れています。 (OSはDebian3.1を使用しています) 【/etc/logrotate.conf】 daily rotate 93 create ifempty nocompress noolddir include /etc/logrotate.d 「ifempty」と書いておくことで、サイズ0のファイルもローテートされるという認識でいたのですが、実際に動かしてみると、サイズ0のファイルハローテートされていません。 -vオプションで動かしてみると「log does not need rotating」と出ます。 「/etc/logrotate.d」配下の設定ファイルにも 「notifempty」が設定されていないのは確認しているのですが 他にどこを確認すれば良いのでしょうか? ご教授よろしくお願いいたします。

  • cronとlogrotateについて

    今、ログのローテーションをやってみたのですが、 logrotate.confとlogrotate.dおよび/etc/crontab、 /etc/cron.daily の中で、/etc/logrotate.confの「weekly」を 「daily」のみ修正してみました。 上記でやってみたのですが、「messages.1」のようにログファイルが 作成されませんでした。 何か他にやらないとできないのでしょうか。 サービス:crondとsyslogなどのサービスはちゃんと起動しております。

  • logrotateでログの整理中、httpdの再起動で不具合

    logrotateでログが整理された後、 httpサーバーが再起動されますが、 その後、WEBサイトが見れなくなります。 /etc/init.d/httpd status で見るとrunning ですが、止まっています。 /etc/init.d/httpd restart すると回復します。 /etc/logrotate.d/httpdの中の再起動部分でおかしくなっています。 /var/log/httpd/*log { missingok notifempty sharedscripts postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript } /bin/kill のところです。 毎回おかしくなる訳ではなく、たまになると言う頻度、httpd restart で回復します。 どういう対応すれば良いでしょうか。。

  • apacheのログファイルがいつの間にか消える

    Redhat Linux7.0J apache_1.3.19 openssl_0.9.6b apache_1.3.19+ssl_1.44の環境で 下記のログファイルの中身が、いつの間にか 全て消えてなくなるのです。  マシンを再起動すれば、たちまちログ出力は 開始されるのですが、また気付いたら消えています。  消えるまでにどれだけの日数がかかるのかは 分かりません。サーバの再起動は3ヶ月に1回ぐらいは 実施していますが、毎回logのことを調べてはいないので どのタイミングで消えたかは全く不明です。 定期的に消えるような処理が自動的に動いているのでしょうか?(それはcronという機能のことですか?cronの設定とかよく分からないのですが現状どのようなcronが動いているか確認する手段(コマンド)はありますか?) [ログファイルは、下記のように1ファイル/1Wずつ保存されていて気付いたら中身が消えている] /usr/local/apache/logs/httpsd_access_log ・・・ /usr/local/apache/logs/httpsd_access_log.4 /usr/local/apache/logs/httpsd_error_log ・・・ /usr/local/apache/logs/httpsd_error_log.4 ログのrotationについては /etc/logrotate.d/syslogファイルに 下記を記述しています。  この記述方法が悪いのでしょうか? インストールの初期状態で自動的に記述されていた maiilogファイルなどを真似して記述したのですが 間違いがありますか? [/etc/logrotate.d/syslogファイルの記述] /usr/local/apache/logs/httpsd_access_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript } /usr/local/apache/logs/httpsd_error_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript }

  • /etc/cron.daily/logrotateがエラーを起こしています。

    /etc/cron.daily/logrotateがエラーを起こし、crontabが動きません。 エラーは以下のとおりですが、見かたがまったくわかりません。 どなたかご教授をお願いいたします。 error: Ignoring swatch~, because of ~ ending error: syslog:7 lines must begin with a keyword or a filename (possibly in double quotes) error: syslog:8 missing end of line error: syslog:8 duplicate log entry for /var/log/messages 中のソースはこちらです。 #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then "/usr/bin/logger" -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0

  • logrotateの実行時間

    logrotateで「/etc/cron.daily/」以下に日次で実行したいスクリプトを置いていますが、 一部のログファイルを「0時」にローテートされるようにしたいです。 ネットで検索してみたところ「/etc/crontab」にrun-partsの指定があるという資料は見つけたのですが 私のサーバ(CentOs6)にはそのような記述が見当たりません。 「/etc/cron.daily0」のようなディレクトリを作成し、そこに記述された内容は毎日0時に実行するといったことは可能でしょうか?

  • logrotateのリネーム後のファイル生成

    ログローテート のツールとクーロンを利用して、ログファイルを定期的にローテートさせます。 以下の順でローテートさせます。 (1)ログファイルをリネームする (例access.log→access_20041001.log) (2)新たにログファイルを生成させています。 (例access.log) そこで、質問ですが、(1)と(2)の間にログを出力する間はわずかでも間隔があるのでしょうか? その間にログを出力させようとしたときは、(2)のファイルが未だ存在が存在しないので、出力できないのでしょうか? 以上のことは、起こりえないのでしょうか? 以下にlogrotate.confの一部を示します。 /home/review/log/review/access.log { daily create 0644 review review rotate 1 postrotate EXT=`date --date '1 days ago' +%Y%m%d` for f in $1; do mv $f.1 /home/review/log/review/access_$EXT.log; done endscript }

  • lnコマンドについて(シンボリックリンクの変更)

    lnコマンドについて、 シンボリックリンクのリンク先を変更しようと思いましたが、変更がうまく出来ませんでした。 実行したコマンド:ln -s logs /export/home/log/s001/logs (現状 )/var/log/s001/logs ↓ (変更先)/export/home/log/s001/logs 何が原因でしょうか? またエラーが発生しなかったのですが、どこかおかしく設定変更されてしまっている可能性はありますか? よろしくお願いいたします。 # ls -l lrwxrwxrwx 1 root other 27 4月 5日 2005年 logs -> /var/log/s001/logs # # # ln -s logs /export/home/log/s001/logs # # # ls -l lrwxrwxrwx 1 root other 27 4月 5日 2005年 logs -> /var/log/s001/logs # #

  • cronの実行がうまくいかない。

    ubuntu18.04 LTSでcronのテストをしているのですが期待通りに動きません。 下記で、6時42分にログローテートが行われません。 原因と対策について教えて下さい。 ・/etc/crontab 42 6 *** root test -x /usr/sbin/anacron || (cd /&& run-parts --report /etc/cron.daily) ・/etc/cron.daily logrotate の記述がある。 ・/etc/logrotate.conf include /etc/logrotate.d の記載がある。 ・/etc/logrotate.d/logrotate_1.conf /tmp/rotate/test.log {   daily compress maxsize 1M create 0660 root root rotate 5 } ・/tmp/rotate/test.log が存在している。 尚、 ・手動実行 sudo logrotate -f /etc/logrotate.d/logrotate_1.conf では、 /tmp/rotate 実行後に、 test.log test.log.1.gz が存在します。

  • ログがローテイトされなくなった.

    fedora11です。 3月頃からapacheを実行しています。 分からないことだらけで、あちこち弄ってました。 4月までは、次のようにログがローテイトされてました。 /var/log /var/log/massages /var/log/massages-20110414 /var/log/massages-20110418  ・  ・ /var/log/httpd/ /var/log/httpd/access_log /var/log//httpd/access_log-20110414 /var/log//httpd/access_log-20110418  ・  ・ 2011.04.18の後、全てのログファイルが、-yyyymmddで分離されず、元のファイルにどんどん追加される一方になりました。 (今まで気にしなかったのもひどいですが。) /etc/logrotate.confの内容は、デフォルト設定のままです。 「ローテイトする/しない」という設定どこかにありましたっけ。 よろしくお願いします。