这是我的conf:
/var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if /etc/init.d/apache2 status > /dev/null ; then \ /etc/init.d/apache2 reload > /dev/null; \ fi; endscript prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript }
如果我正确地做了,它应该保留52周的价值logging(包装),但是每个星期后都会被删除。
我有2个虚拟主机,一个是www,另一个是testing子域。 这是我告诉我的网站从站点启用conf进行login。
<VirtualHost *:80> ServerAdmin [email protected] ServerName test.xxx.com ServerAlias test.xxx.com DocumentRoot /var/www/test.xxx.com/public_html <Directory /var/www/test.xxx.com/public_html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> AddDefaultCharset UTF-8 ErrorLog ${APACHE_LOG_DIR}/test.xxx.com/error.log CustomLog ${APACHE_LOG_DIR}/test.xxx.com/access.log combined </VirtualHost>
其中xxx.com是我的域名,test.xxx.com文件夹确实存在于Apache日志目录中。 logging工作正常,但旧的日志只是消失!
我做了: logrotate -f -d /var/log/apache2/xxx.com/access.log作为@Craig Miskellbuild议。 我得到的输出是:
error: /var/log/apache2/xx.com/access.log:1 lines must begin with a keyword or a filename (possibly in double quotes) error: /var/log/apache2/xxx.com/access.log:2 lines must begin with a keyword or a filename (possibly in double quotes) error: /var/log/apache2/xxx.com/access.log:3 lines must begin with a keyword or a filename (possibly in double quotes) error: /var/log/apache2/xxx.com/access.log:4 lines must begin with a keyword or a filename (possibly in double quotes) etc...
我打开日志文件,一切都很好。 我甚至使用了一些名为Apache Logs Viewer(在Windows上)的软件,这个程序也理解为什么日志文件非常好。
几乎没有问题的日志文件的第一行:
999.999.999.999 - - [26/Dec/2014:11:28:41 +0000] "GET /contact HTTP/1.1" 200 1622 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /contact HTTP/1.1" 200 1622 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /assets/css/normalize.css HTTP/1.1" 200 3034 "http://www.xxxxxx.com/contact" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /assets/css/skeleton.css HTTP/1.1" 200 4680 "http://www.xxxxxx.com/contact" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /assets/js/main.js HTTP/1.1" 200 1038 "http://www.xxxxxx.com/contact" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /assets/js/moment.js HTTP/1.1" 200 14752 "http://www.xxxxxx.com/contact" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /assets/images/logo-inverted.png HTTP/1.1" 200 1864 "http://www.xxxxxx.com/contact" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" 999.999.999.999 - - [26/Dec/2014:11:31:01 +0000] "GET /assets/images/logo.png HTTP/1.1" 200 3681 "http://www.xxxxxx.com/contact" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60"
我改变了一些IP和域名,但一切都是这样的…
使用谷歌search它看起来像文件是不正确的(Unix?)格式,但我甚至不是谁正在写这个文件或创build一个新的,我怎么能创build它错了?
据我所知,*通配符只扩展到一个目录级别,而不是更多。 所以,在你的configuration文件中使用:
/var/log/apache2/test.xxx.com/*.log { your config here }
要么
/var/log/apache2/*/*.log { your config here }