phpでこんなエラー。
session管理ができなく、サービスが提供できない最悪な状況。
Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0パーティションの空き容量が無い状態になっていた。
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
[root@www ~]# df容量が大きくなっているディレクトリを見つける。
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 149260480 139074300 2481808 99% /
/dev/sda1 101086 12903 82964 14% /boot
tmpfs 500952 0 500952 0% /dev/shm
[root@www ~]# du -h | grep [0-9]G→ログファイルがヤバイ。
[root@www ~]# ls -l /var/log取り合えず、該当のファイルを削除してしまう。
[root@www ~]# rm -f [ファイル名]もうこんなことがおきてはいけないので、logrotateを見直す。
logrotateの設定ファイルを確認
[root@localhost ~]# locate logrotate.conf
/etc/logrotate.conf
[root@localhost ~]# cat /etc/logrotate.conf | grep include
include /etc/logrotate.d ←これが設定ファイルの場所。
[root@localhost ~]# ls -l /etc/logrotate.d現在のログと照らし合わせ、足りないlogrotateの設定を追加する。
total 68
-rw-r--r-- 1 root root 174 Sep 18 2007 httpd
-rw-r--r-- 1 root root 571 Jan 23 2007 mgetty
-rw-r----- 1 root named 163 Dec 20 2007 named
-rw-r--r-- 1 root root 174 Jan 10 2008 pop-before-smtp
-rw-r--r-- 1 root root 329 Apr 5 2007 psacct
-rw-r--r-- 1 root root 61 Oct 12 2007 rpm
-rw-r--r-- 1 root root 68 Aug 14 2007 sa-update
-rw-r--r-- 1 root root 543 Dec 6 2007 squid
-rw-r--r-- 1 root root 228 Jul 9 2001 syslog
-rw-r--r-- 1 root root 48 Aug 23 2006 tux
-rw-r--r-- 1 root root 95 Apr 4 2007 vsftpd.log
-rw-r--r-- 1 root root 89 Dec 6 2007 yum
[root@localhost ~]# vi /etc/logrotate.d/xferlog
/var/log/xferlog {
weekly
nocompress
missingok
}
{}内に設定値を記述することで、様々な設定を行える。
⇒logrotateの設定値の参考
| 設定値 | 説明 |
| compress | ローテーションされたログをgzipで圧縮する。 |
| create [パーミッション] [ユーザ名] [グループ名] | ローテーション後に新たな空のログファイルを作成します。ファイルのパーミッション、ユーザ名、グループ名を指定できます。 |
| daily | 毎日ログローテーションする。 |
| ifempty | ログファイルが空でもローテーションする。 |
| missingok | ログファイルが存在しなくてもエラーを出さない。 |
| monthly | 毎月ログローテーションする。 |
| nocompress | ローテーションされたログを圧縮しない。 |
| nocreate | 新たな空のログファイルを作成しない。 |
| nomissingok | ログファイルが存在しない場合エラーを出す。 |
| noolddir | ローテーション対象のログと同じディレクトリにローテーションされたログを格納する。 |
| notifempty | ログファイルが空ならローテーションしない。 |
| olddir ディレクトリ名 | 指定したディレクトリ内にローテーションされたログを格納する。 |
| postrotate - endscript | postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する。 |
| prerotate - endscript | postrotateとendscriptの間に記述されたコマンドをログローテーション前に実行する。 |
| rotate 回数 | 指定した回数だけローテーションする。 |
| size ファイルサイズ | ログファイルが指定したファイルサイズ以上であればローテーションする。 |
| sharedscripts | 複数指定したログファイルに対してpostrotateまたはprerotateで記述されたコマンドを実行する。 |
| weekly | 毎週ログローテーションする。 |
設定ファイルにミスがないか確認
[root@localhost ~]# logrotate -dv /etc/logrotate.d/xferlog



0 コメント:
コメントを投稿