• 締切済み

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

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の内容は、デフォルト設定のままです。 「ローテイトする/しない」という設定どこかにありましたっけ。 よろしくお願いします。

みんなの回答

回答No.2

>[root@betasei etc]# crontab -l これはrootユーザのcronのエントリしか示さないのでちょっと意味が違います。 普通は/etc/cron.daily/logrotate というスクリプトでローテートし、このスクリプトは/etc/crontab の設定から起動されます。 なので、/etc/crontab にその記載がなければローテートされません。 CentOSのデフォルトでは下記のエントリがあります。 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly rootユーザで /etc/cron.daily/logrotate と手動で動かしてみてローテートされるかどうか試すのも手です。

orion2003
質問者

お礼

その後、調べてましたら、fedoraの場合、anacronというやつで実行していることまで、分かりました。 http://d.hatena.ne.jp/eth0jp/20110301/1298972224 今回の質問は、少々、的を外してましたので、もう少し自分で研究してみて、それでも分からなかったら、改めて質問させていただきます。 今回は、お手数かけて済みませんでした。

orion2003
質問者

補足

レスが遅くなりました。 他の作業で忙殺されていました。 >01 * * * * root run-parts /etc/cron.hourly >02 4 * * * root run-parts /etc/cron.daily >22 4 * * 0 root run-parts /etc/cron.weekly >42 4 1 * * root run-parts /etc/cron.monthly この設定、どうやって表示させるんでししたでしょうか。 消してしまったかもしれません。 crontabに設定した自作スクリプトの内容はここにあります。 -------------------------------------------------------------- [root@betasei cron]# pwd /var/spool/cron [root@betasei cron]# ls -l 合計 4 -rw------- 1 root root 86 2011-05-28 07:18 root [root@betasei cron]# cat root 35 6 * * * /usr/local/my_sh/samba_set.sh 10 7 * * * /usr/local/my_sh/samba_reset.sh /etc/ 階層下のcron関係ファイルは、こんな風にあります。 -------------------------------------------------------------- [root@betasei etc]# ls -l /etc/cron* -rw-r--r--. 1 root root 0 2009-03-09 17:15 /etc/cron.deny -rw-rw-rw-. 1 root root 391 2011-05-19 07:27 /etc/crontab -rw-rw-rw-. 1 root root 421 2011-05-18 10:44 /etc/crontab~ /etc/cron.d: 合計 8 -rw-r--r--. 1 root root 43 2009-04-14 23:22 0hourly -rw-r--r--. 1 root root 268 2010-10-05 07:42 smolt /etc/cron.daily: 合計 32 ・ ・ -rwxr-xr-x. 1 root root 118 2009-05-15 18:22 cups -rwxr-xr-x. 1 root root 180 2003-07-10 04:36 logrotate -rwxr-xr-x. 1 root root 669 2009-02-26 11:38 makewhatis.cron -rwxr-xr-x. 1 root root 174 2007-08-25 08:31 mlocate.cron ・ ・ /etc/cron.hourly: 合計 4 -rwxr-xr-x. 1 root root 341 2009-04-14 23:22 0anacron /etc/cron.monthly: 合計 4 -rwxr-xr-x. 1 root root 111 2009-03-06 03:14 readahead-monthly.cron fedora11には、GUIのログビューアが入ってまして、そのcron のログみると、 starting logrotate という行があります。 実行しようとしてるんでしょうか。 -------------------------------------------------------------------------------------- ・ ・ Jul 26 03:01:01 betasei CROND[17494]: (root) CMD (run-parts /etc/cron.hourly) Jul 26 03:01:01 betasei run-parts(/etc/cron.hourly)[17494]: starting 0anacron ・ ・ Jul 26 03:47:01 betasei anacron[17506]: Job `cron.daily' started Jul 26 03:47:01 betasei run-parts(/etc/cron.daily)[17510]: starting 0logwatch Jul 26 03:47:16 betasei run-parts(/etc/cron.daily)[18032]: finished 0logwatch Jul 26 03:47:16 betasei run-parts(/etc/cron.daily)[17510]: starting cups Jul 26 03:47:16 betasei run-parts(/etc/cron.daily)[18039]: finished cups Jul 26 03:47:16 betasei run-parts(/etc/cron.daily)[17510]: starting logrotate Jul 26 03:47:16 betasei run-parts(/etc/cron.daily)[18047]: finished logrotate Jul 26 03:47:16 betasei run-parts(/etc/cron.daily)[17510]: starting makewhatis.cron Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[18133]: finished makewhatis.cron Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[17510]: starting mlocate.cron Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[18144]: finished mlocate.cron Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[17510]: starting prelink Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[18156]: finished prelink Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[17510]: starting readahead.cron Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[18167]: finished readahead.cron Jul 26 03:47:17 betasei run-parts(/etc/cron.daily)[17510]: starting rpm Jul 26 03:47:27 betasei run-parts(/etc/cron.daily)[18178]: finished rpm Jul 26 03:47:27 betasei run-parts(/etc/cron.daily)[17510]: starting tmpwatch Jul 26 03:47:27 betasei run-parts(/etc/cron.daily)[18216]: finished tmpwatch Jul 26 03:47:27 betasei anacron[17506]: Job `cron.daily' terminated (mailing output) Jul 26 03:47:27 betasei anacron[17506]: Normal exit (1 job run) crontab のしくみがよく分からないです。

回答No.1

いろいろ考えられますね。 /etc/crontab で/etc/cron.dailyの行がコメントアウトされている。 /etc/cron.daily/logrotate が実行不可になっている。 /etc/logrotate.d/syslog で/var/log/messagesがローテートするように設定されていない。 等等。 apacheのログに関してはrotatelogsやcronologのような外部プログラムでローテートしているかもしれないので何とも言えない。 でも(fedora11は良く知らないのですが)デフォルトのままだとしたら-yyyymmddというサフィックスが付かないと思うのだけど。 messagesにもrotatelogsか何か使ってませんか?

orion2003
質問者

補足

早々のコメントありがとうございます。 >/etc/crontab で/etc/cron.dailyの行がコメントアウトされている。 消してしまったかもしれません。 crontabには、当時自作シェルスクリプトを登録しました。 いま、こうなってます。 [root@betasei ~]# cd /etc/ [root@betasei etc]# crontab -l 35 6 * * * /usr/local/my_sh/samba_set.sh 10 7 * * * /usr/local/my_sh/samba_reset.sh それと、当時シェルスクリプトの登録の仕方よく知らなくて、 crontab -l の代わりに、 gedit crontab で、/etc/crontab自体を書き換えてしまった虞があります。 現在の/etc/crontabのファイルの中身 --------------------------------------------------------------------- SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin/: MAILTO=root HOME=/ # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR #sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed ---------------------------------------------------------------------- なお、/etc/cron にはこんなファイルが入っています。 [root@betasei etc]# ls -l cron.* -rw-r--r--. 1 root root 0 2009-03-09 17:15 cron.deny cron.d: 合計 8 -rw-r--r--. 1 root root 43 2009-04-14 23:22 0hourly -rw-r--r--. 1 root root 268 2010-10-05 07:42 smolt cron.daily: 合計 32 lrwxrwxrwx. 1 root root 45 2010-10-05 07:47 0logwatch -> ../..//usr/share/logwatch/scripts/logwatch.pl -rwxr-xr-x. 1 root root 118 2009-05-15 18:22 cups -rwxr-xr-x. 1 root root 180 2003-07-10 04:36 logrotate -rwxr-xr-x. 1 root root 669 2009-02-26 11:38 makewhatis.cron -rwxr-xr-x. 1 root root 174 2007-08-25 08:31 mlocate.cron -rwxr-xr-x. 1 root root 2181 2006-06-21 19:07 prelink -rwxr-xr-x. 1 root root 563 2009-03-06 03:14 readahead.cron -rwxr-xr-x. 1 root root 296 2009-04-16 18:30 rpm -rwxr-xr-x. 1 root root 339 2009-03-23 22:51 tmpwatch cron.hourly: 合計 4 -rwxr-xr-x. 1 root root 341 2009-04-14 23:22 0anacron cron.monthly: 合計 4 -rwxr-xr-x. 1 root root 111 2009-03-06 03:14 readahead-monthly.cron cron.weekly: 合計 8 -rwxr-xr-x. 1 root root 663 2009-02-26 11:38 makewhatis.cron -rwxr-xr-x. 1 root root 135 2009-05-20 02:04 raid-check [root@betasei etc]# 何か、お分かりでしょうか。 ややこしい話になってきて、すみません。

関連するQ&A

  • /var/log/httpd/error_logに大量のエラーログ

    お世話になります。 サーバを運用しているんですが、/var/log/httpd/error_logに大量のエラーログが出ます。 環境 CENTOS4 PHP5.1.6 mysql5 apache2.0 /etc/httpd/conf/httpd.confのerror_log部分はコメントアウトして再起動しました。 エラーログをはいているなにがしかのconf設定部分があるとおもい、ずっと探しているのですが、まったくわかりません。エラーログを吐かないようにしたいのですが、どうにか良い方法ございませんでしょうか。 エラーログの中身ですが、すぐいっぱいになるため、中身を見ようと思っても容量が大きすぎてコマンドラインから開くこともままなりません。大体一時間で50G程度のエラーログが出ています。 お忙しいところ大変申し訳ございませんがどうぞよろしくお願いします。

  • apache2 ユーザ毎のログ生成は可能?

    私の利用しているレンタルサーバは、アカウント毎にapacheがはいたと思われるログファイルがあります。つまりこのログファイルはユーザのホームディレクトリ内にあり、/var/log/httpd/access.log の内容をユーザ毎に振り分けた内容です。 apacheでそのようなことをするにはどうすればよいでしょうか?

  • apacheのアクセスログについて

    ログを自動的に整理しようと、/etc/logrotate.conf定義でrotate 8から rotate 4に戻しましたが a_access_log.1085011200というファイルが作成されますが、こちらの方に最新のログが記録されていて、 肝心のa_access_logには、1ヶ月半以上前のデータが残っています。 意味的に正しいのでしょうか?アクセス解析で常に最新のデータを使いたいのですが、これでは 古いデータを使うことになります。

  • 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 }

  • 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でログを圧縮&再起動を掛けたい

    長い質問ですみません。随分試行錯誤した上でまだ悩んでいます。 無料プロバイダを個人運営でやっているものなんですが、 サーバーのログをhttp.confの設定でこんな感じで作成し、 CustomLog /var/log/apache/XXX.XXX.ne.jp-access.log combined これをCSV扱いしてCGIで読み取り、解析をしています。 自動的に一週間でログの切り替えを行っている様で最初はこれでよかったのですが、アクセスが増えるにつれcgiとログファイルが非常に重くなってきました。 そこで、以下のことをしようと思っています。 cronを使えば良いのではないかと思いました。 1.一定のアクセスの少ない時刻にログ圧縮をかける (圧縮ファイルは上書きでよい。どっちみちそんなに遡っては見ないので) 2.apacheを再起動する (再起動かけないと新しいlogファイルが作成されない様なので) ちなみに手動では以下の方法で出来ました。 gzip /var/log/apache/XXX.XXX.ne.jp-access.log ps x kill プロセスID /usr/sbin/apache でも自動だと kill プロセスIDがダメなんです。 同じIDでapacheが起動してくれないので・・・。 1.apacheを一定時間に確実に再起動させる方法 2.それ以外の1日単位でログファイルの切り替えを行う方法 CGIが一定ファイルを読む仕掛けになってるので現在アクティブなファイルは 同じのままという条件で のどちらかを教えてください。 ちなみに、 http://www.rfs.co.jp/server/apache/06.html の方法はhttpd.pidがwhereisとかfind探しても見つからないという 理由により挫折してますのでこれはアドバイスしないでください。 見つける方法がわかればそれでもまあいいのですが。

  • apacheのログについて

    Solaris10において、Apache2.2.8を使用しています。 httpd.confのListenを80から変更したところ、アクセスログ(/usr/local/apache2/logs/access_log)が出力されなくなりました。 再起動してもダメです。 Listenポート番号の変更でログの出力に影響が出るのでしょうか? ご教授お願いします。

  • error_logが生成されない

    apacheの再起動、サーバーの再起動を行っても 生ログのerror_logが生成されなくなってしまいました。 どこか設定を間違えてしまったのでしょうか。 通常はapacheの再起動で自動で生成されるという認識 なのですが、どこで自動生成するように設定しているのでしょうか。 httpd.confファイルにはそれらしき内容はなかったのです。

  • apacheのアクセスログのファイル名について

    【環境】 centos4.5 apache2.2.6 現在、テストの為、アクセスログを5分ごとにローテーションさせて、 ファイル名には「年月日時分秒」が入るように設定してますが、 出力されるアクセスログファイル名の時刻がおかしくて困ってます。 【httpd.confの設定値】 CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_log.%Y%m%d%H%M%S 300" combined 15時55分に出力されたファイル名 access_log.20071104065500 16時5分に出力されたファイル名 access_log.20071104070500 上記のように 15時だと06 16時だと07 になってしまいます。 年・月・日・分・秒は正確にファイル名に入るのですが、 時だけおかしいです。 dateコマンドだと正常に表示されます 2007年 11月 4日 日曜日 16:44:02 JST 原因が分からず困っています。 どなたか教えて下さい。宜しくお願いします。

  • さくらVPSのアクセスログファイルの場所が知りたい

    現在さくらVPSの 1Gプラン(http://vps.sakura.ad.jp/)で契約しています。 デフォルトのCentOSでapacheをインストールし、 ほとんどデフォルトのままの設定でサーバーを稼働させています。 そこで、さくらVPSのアクセスログファイルの場所が知りたい のですがそれはどこにあるのでしょうか? そこでapacheのhttpd.confというファイルを見たら  CustomLog logs/access_log combined との記述がありましたが、この意味が良くわかりません。 logs/access_logという場所にaccess_logというファイルで アクセスログファイルが作られているという意味なのでしょうか? しかし、そうしたディレクトリーは特に見つからず、 一体どこに保存されているのか、そもそも保存されているのかが 分からず右往左往しています。 何か心当たりのある方からアドバイスが頂ければ幸いです。