Почему logrotate удаляет мои журналы?

Это - мой 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
}

Если я undertand правильно, это должно содержать 52 недели стоящих (упакованных) журналов, но они удалены после каждой недели вместо этого.

У меня есть 2 виртуальных хоста, каждый - www, и другой является тестовым субдоменом. Это - то, как я говорю моим сайтам быть зарегистрированными от поддерживающей сайты конференции.

<VirtualHost *:80>
    ServerAdmin admin@xxx.com
    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 действительно существует в апачском dir журнала. Вход хорошо работает, но старые журналы просто dissapear!

Я сделал: logrotate -f -d /var/log/apache2/xxx.com/access.log как @Craig предложенный Miskell. Вывод, который я получил, был:

    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 (в 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 и домены, но все остальное - как это...

При поиске с помощью Google проблемы, на которую это похоже, файл не находится в корректном (Unix?) формат, но я даже не тот, который пишет файл или создает новый, как я могу создать его неправильно?!

2
задан 30 December 2014 в 21:54
1 ответ

Насколько мне известно, подстановочный знак * распространяется только на один уровень каталога, не более. Итак, в вашем файле конфигурации используйте:

/var/log/apache2/test.xxx.com/*.log {
    your config here
}

или

/var/log/apache2/*/*.log {
        your config here
}
3
ответ дан 3 December 2019 в 10:44

Теги

Похожие вопросы