ディスク容量がいっぱいのため、mysqldは起動しません。
101221 14:06:50 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
101221 14:06:50 [ERROR] Can't start server: can't create PID file: No space left on device
実行中df -h
:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 3.2G 12G 23% /
/dev/sda5 4.8G 4.6G 0 100% /var
/dev/sda3 430G 855M 407G 1% /home
/dev/sda1 76M 24M 49M 33% /boot
tmpfs 956M 0 956M 0% /dev/shm
du -sh *
の/var
:
12K account
56M cache
24K db
32K empty
8.0K games
1.5G lib
8.0K local
32K lock
221M log
16K lost+found
0 mail
24K named
8.0K nis
8.0K opt
8.0K preserve
8.0K racoon
292K run
70M spool
8.0K tmp
76K webmin
2.6G www
20K yp
/dev/sda5
では、/var/www
にウェブサイトファイルがあります。
これは初めてなので、/var/www
を他のパーティションに移動する以外にどのファイルを削除するかわかりません
そしてもう1つ、/dev/sda5
のログファイルや履歴などを削除する正しい方法は何ですか?
mv /var/log/*gz /var/log/*.0 /home/backup/var/log
yum clean packages
またはapt-get cleanを実行して/ var/cacheからコンテンツを削除しますすばやく汚い:/var/www
から/home/www
、次にシンボリックリンクを作成します。
rsync -a /var/www /home &&
rm -r /var/www &&
ln -s /home/www /var/www
長期的:多分あなたの/var/www
および/var/log
ディレクトリを独自の専用パーティションに配置します。おそらく縮小できます/home
解放されたスペースを使用して、適切なパーティションを作成します。
/var/lib
の内訳は?それが私のシステムのようであれば、そのほとんど(たとえば500 MB)は/var/lib/mysql
によって占められています。
他の数値はすべてかなり正常で合理的であるように見えるため、/var/lib/mysql
と/var/www
を移動することが唯一の現実的な長期的な解決策です。
古いログファイルを削除するために、ログがローテーションされていますか。 /var/log/messages
、/var/log/messages.1
、/var/log/messages.2.gz
など、または/var/log/messages-20101221
、/var/log/messages-20101220.gz
などはありますか?
それらを削除する明白な方法は、年齢などです。
# find /var/log -type f -mtime +14 -print
# find /var/log -type f -mtime +14 -exec rm '{}' \;
また、/etc/logrotate.conf
のlogrotate設定が適切であることを確認してください。それらはあなたの主な問題ではないので、それらを変更すべきではないと思いますが、おそらく1週間のログを保持したいだけかもしれません。
daily
rotate 7
create
compress
include /etc/logrotate.d
次に、各サービスのファイルがあります。 syslog、mysql、Apacheなどで、それぞれのログローテーションを設定します。 DebianおよびRed Hatシステムでは、すでに設定されているはずです。
まだlogrotateがない場合は、少し難しくなります。私はgrepまたはtailを使用して最近のエントリを保存し、ファイルを削除してsyslogdを再起動することを検討します(例:service syslogd restart
またはpkill -HUP syslogd
。
最後に、このような状況のために私が作成したスクリプトはdiskuse
です。
# test -d ~/bin || mkdir ~/bin
# svn cat http://svn.mikelward.com/svn/scripts/diskuse > ~/bin/diskuse
# chmod +x ~/bin/diskuse
# ~/bin/diskuse -A /var > ~/biggest-files-in-var.txt
# head ~/biggest-files-in-var.txt
# ~/bin/diskuse -T -A /var > ~/biggest-dirs-in-var.txt
# head ~/biggest-dirs-in-var.txt
# ~/bin/diskuse -a 1d /var > ~/biggest-files-in-var-that-changed-today.txt
# head ~/biggest-files-in-var-that-changed-today.txt