之前已经弄过了:
https://www.crifan.com/centos_7_disk_space_usage_abnormal
但是没有真正解决问题
导致每过一段时间,都要去手动删除对应的,很多GB的日志文件
cd /var/www/crifan.com/logs/
rm access.log error.log
所以很是麻烦。
想要去彻底解决此问题。
让网站的日志可以自动覆盖。
php log file too large
crifan@crifan:~$ ls /var/log/php/ -latotal 8drwxr-xr-x 2 apache root 4096 Sep 12 2015 .drwxr-xr-x 11 root root 4096 May 22 03:45 .. crifan@crifan:~$ ls /var/www/crifan.com/logs/ -lahtotal 3.8Gdrwxrwxrwx 2 root root 4.0K May 9 22:54 .drwxrwxrwx 4 root root 4.0K May 21 2015 ..-rw-r–r– 1 root root 3.8G May 28 11:02 access.log-rw-r–r– 1 root root 9.2M May 28 10:29 error.log |
/var/www logs/access.log too large
How To Configure Logging And Log Rotation In Apache On An Ubuntu VPS | DigitalOcean
logging – Apache’s access.log files taking up too much space – Server Fault
HowTo: The Ultimate Logrotate Command Tutorial with 10 Examples
apache – access_log is huge, not being archived. how to reset it? – Stack Overflow
此处去看了看,log的配置,不是:
crifan@crifan:~$ cat /etc/httpd/conf/httpd.conf
而是:
crifan@crifan:~$ cat /etc/httpd/conf.d/vhost.conf
中的:
<VirtualHost *:80> ErrorLog /var/www/crifan.com/logs/error.log CustomLog /var/www/crifan.com/logs/access.log combined |
vhost.conf CustomLog
vhost.conf CustomLog logrotate
Log Files – Apache HTTP Server Version 2.4
去看了看此处的:
rotatelogs
此处是在:/usr/sbin/rotatelogs
crifan@crifan:~$ ls /usr/local/bin cpanel etc games include lib lib64 libexec sbin share srccrifan@crifan:~$ ls /usr/local/bin/crifan@crifan:~$ which rotatelogs/usr/sbin/rotatelogs |
然后看了看语法:
crifan@crifan:~$ /usr/sbin/rotatelogs –helpIncorrect number of argumentsUsage: /usr/sbin/rotatelogs [-v] [-l] [-L linkname] [-p prog] [-f] [-t] [-e] [-c] [-n number] <logfile> {<rotation time in seconds>|<rotation size>(B|K|M|G)} [offset minutes from UTC] Add this: TransferLog "|/usr/sbin/rotatelogs /some/where 86400" or TransferLog "|/usr/sbin/rotatelogs /some/where 5M" to httpd.conf. By default, the generated name will be<logfile>.nnnn where nnnn is the system time at which the lognominally starts (N.B. if using a rotation time, the time willalways be a multiple of the rotation time, so you can synchronizecron scripts with it). If <logfile> contains strftime conversionspecifications, those will be used instead. At the end of eachrotation time or when the file size is reached a new log isstarted. Options: -v Verbose operation. Messages are written to stderr. -l Base rotation on local time instead of UTC. -L path Create hard link from current log to specified path. -p prog Run specified program after opening a new log file. See below. -f Force opening of log on program start. -t Truncate logfile instead of rotating, tail friendly. -e Echo log to stdout for further processing. -c Create log even if it is empty. The program is invoked as "[prog] <curfile> [<prevfile>]"where <curfile> is the filename of the newly opened logfile, and<prevfile>, if given, is the filename of the previously used logfile. |
rotatelogs – Piped logging program to rotate Apache logs – Apache HTTP Server Version 2.4
然后去改为:
ErrorLog /var/www/crifan.com/logs/error.log #CustomLog /var/www/crifan.com/logs/access.log combined CustomLog "|/usr/sbin/rotatelogs /var/www/crifan.com/logs/access_log.%Y%m%d_%H%M%S 604800" common |
其中
604800=604800 秒=60*60*24*7秒=7天
再去重启服务器
看看是否生成对应的log
好像是生效了,生成对应的带时间的log文件了:
crifan@crifan:logs$ pwd/var/www/crifan.com/logscrifan@crifan:logs$ ls -haltotal 9.3Mdrwxrwxrwx 2 root root 4.0K May 28 11:54 .drwxrwxrwx 4 root root 4.0K May 21 2015 ..-rw-r–r– 1 root root 78K May 28 11:55 access_log.20160526_000000-rw-r–r– 1 root root 9.2M May 28 11:45 error.log |
然后就是,等再过1周后,再去看,是否rotate,重新生成新的log文件吧
【后记 2016-06-05】
后来再去看log:
crifan@crifan:~$ cd /var/www/crifan.com/logs crifan@crifan:logs$ ls -lha total 704M drwxrwxrwx 2 root root 4.0K Jun 2 08:00 . drwxrwxrwx 4 root root 4.0K May 21 2015 .. -rw-r–r– 1 root root 410M Jun 2 07:59 access_log.20160526_000000 -rw-r–r– 1 root root 284M Jun 5 16:52 access_log.20160602_000000 -rw-r–r– 1 root root 9.7M Jun 5 16:48 error.log |
果然:
对应的,是一周后,就rotate,重新生成的log文件了。
-》但是是:
一周之前的log文件,不是删除掉了,而是保留了。
然后新建了对应的log文件了
-》这样过段时间后,log文件还是会很多,很大的
-》我要的是
重新删除掉,冲掉旧的
-》所以还是要抽空去设置为truncate,而不是保留旧log
后来发现还是log文件内容太多太大,
导致无法登录wordpress后台
去删除后:
➜ ~ cd /var/www/crifan.com/logs ➜ logs ll -h total 11G -rw-r–r– 1 root root 544M Jun 16 07:59 access_log.20160609_000000 -rw-r–r– 1 root root 572M Jun 23 07:59 access_log.20160616_000000 -rw-r–r– 1 root root 574M Jun 30 07:59 access_log.20160623_000000 -rw-r–r– 1 root root 583M Jul 7 07:59 access_log.20160630_000000 -rw-r–r– 1 root root 609M Jul 14 07:59 access_log.20160707_000000 -rw-r–r– 1 root root 618M Jul 21 07:59 access_log.20160714_000000 -rw-r–r– 1 root root 633M Jul 28 07:59 access_log.20160721_000000 -rw-r–r– 1 root root 583M Aug 4 07:59 access_log.20160728_000000 -rw-r–r– 1 root root 575M Aug 11 07:59 access_log.20160804_000000 -rw-r–r– 1 root root 570M Aug 18 07:59 access_log.20160811_000000 -rw-r–r– 1 root root 583M Aug 25 07:59 access_log.20160818_000000 -rw-r–r– 1 root root 571M Sep 1 07:59 access_log.20160825_000000 -rw-r–r– 1 root root 587M Sep 8 07:59 access_log.20160901_000000 -rw-r–r– 1 root root 604M Sep 15 07:59 access_log.20160908_000000 -rw-r–r– 1 root root 558M Sep 22 07:59 access_log.20160915_000000 -rw-r–r– 1 root root 634M Sep 29 07:59 access_log.20160922_000000 -rw-r–r– 1 root root 453M Oct 6 07:59 access_log.20160929_000000 -rw-r–r– 1 root root 603M Oct 13 07:59 access_log.20161006_000000 -rw-r–r– 1 root root 83M Oct 13 20:42 access_log.20161013_000000 -rw-r–r– 1 root root 17M Oct 13 20:42 error.log ➜ logs rm access_log.2016* -f ➜ logs ll total 17M -rw-r–r– 1 root root 17M Oct 13 20:42 error.log |
才能正常登录后台。
【2017-01-15】
再去及时删除log:
➜ ~ cd /var/www/crifan.com/logs ➜ logs ll total 5.3G -rw-r–r– 1 root root 603M Dec 8 07:59 access_log.20161201_000000 -rw-r–r– 1 root root 460M Dec 15 07:59 access_log.20161208_000000 -rw-r–r– 1 root root 489M Dec 22 07:59 access_log.20161215_000000 -rw-r–r– 1 root root 501M Dec 29 07:59 access_log.20161222_000000 -rw-r–r– 1 root root 447M Jan 5 07:59 access_log.20161229_000000 -rw-r–r– 1 root root 513M Jan 12 07:59 access_log.20170105_000000 -rw-r–r– 1 root root 491M Jan 19 07:59 access_log.20170112_000000 -rw-r–r– 1 root root 392M Jan 25 11:32 access_log.20170119_000000 -rw-r–r– 1 root root 1.5G Jan 25 11:32 error.log ➜ logs rm access_log.201* rm: remove write-protected regular file ‘access_log.20161201_000000’? y rm: remove write-protected regular file ‘access_log.20161208_000000’? ^C ➜ logs rm -f access_log.201* ➜ logs ll total 1.5G -rw-r–r– 1 root root 1.5G Jan 25 11:33 error.log ➜ logs rm error.log rm: remove write-protected regular file ‘error.log’? y ➜ logs ll total 0 |
转载请注明:在路上 » 【记录】继续折腾WordPress网站的日志覆盖问题