啟動 mysqld 時經過很長時間顯示
Timeout error occurred trying to start MySQL Daemon.
終端進入 mysql 時顯示
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
后來查到是 /var/log/httpd/ 下一個日志文件把磁盤空間滿了造成的,刪除后重啟服務器就好了。
apache日志管理以及大日志清除方法
web服務器日志輪循比較好的方式有三種:
第一種方法是利用Linux系統自身的日志文件輪循機制:logrotate;
第二種方法是利用apache自帶的日志輪循程序rotatelogs;
第三種是使用在apache的FAQ中推薦發展已經比較成熟的一個日志輪循工具cronolog。
這里我給大家帶來的是用apache自帶的日志輪循程序rotatelogs,並用shell腳本定期刪除日志文件,只保留近3天的文件,以免日志文件占滿
磁盤空間。
修改主配置文件httpd.conf
找到以下內容,並修改成:
ErrorLog /var/log/httpd/error_log
CustomLog "|/usr/local/apache2/bin/rotatelogs /var/log/httpd/access_log 86400 400M" combined
# 86400 ---日志滾動的時間是一天
# 400 ---日志文件最大400M就滾動
# combined ---采用復合格式
然后建立清除日志文件的shell腳本,文件名為clean_log
#! /bin/bash
logdir=/var/log/httpd
cd ${logdir}
declare -i filesum=`ls access_log.* | wc -l`
declare -i delnum=$filesum-3
if [ "${delnum}" -ge 1 ];then
rm -rf `ls -tr access_log.* | head -${delnum}`
fi
chmod 755 clean_log
這樣就保留了最近3天的日志文件。
建立自動化任務
01 04 * * * /usr/local/crontab/clean_log
ok,搞定,就這么簡單。這樣你就不用不必為日見增大的日志文件煩惱了!