access_log огромен, не архивируется. как его сбросить? - PullRequest
11 голосов
/ 14 мая 2010

Я обнаружил, что мой access_log занимает большую часть моего жесткого диска. Это более 200 ГБ в размере. Как я могу сбросить его?

Я использую Apache 2.2.3 на сервере CentOS с Plesk.

Спасибо, ребята!

Ответы [ 8 ]

15 голосов
/ 11 марта 2011

knx'answer - это хорошо, но я бы предложил переименовать журнал и создать новый, чтобы можно было перезапустить apache, не дожидаясь сжатия журнала доступа, что может занять некоторое время, если оно большое.

нужен доступ к ssh

Сначала переименуйте текущий файл журнала:

mv /var/log/apache/access.log /var/log/apache/access.log.1

Во-вторых, создайте новый файл журнала и предоставьте те же разрешения, владельца / группу и контекст selinux, что и в исходном:

touch /var/log/apache/access.log
chown --reference=/var/log/apache/access.log.1 /var/log/apache/access.log
chmod --reference=/var/log/apache/access.log.1 /var/log/apache/access.log
restorecon --reference=/var/log/apache/access.log.1 /var/log/apache/access.log

(вероятно, для этого нужен root)

Далее перезапустите apache

Затем распакуйте старый файл (коэффициенты сжатия текстовых файлов действительно хорошие). Если мы предполагаем, что файл называется /var/log/apache/access.log, то сделайте это:

gzip -c /var/log/apache/access.log.1 > /var/log/apache/access.log.1.gz

эти 4 пункта - то, что logrotate делает автоматически.

7 голосов
/ 06 сентября 2010

Если у вас есть доступ по SSH к серверу, то вы можете:

1) Gzip старый файл (коэффициенты сжатия текстовых файлов действительно хорошие). Если мы предполагаем, что файл называется /var/log/apache/access.log, то сделайте следующее:

gzip -c /var/log/apache/access.log > /var/log/apache/access.log.gz

2) Очистить текущий файл

echo > /var/log/apache/access.log

3) Перезапустить apache

Также как Дез предложил рассмотреть возможность использования logrotate для архивации журналов apache производственного уровня.

5 голосов
/ 14 мая 2010

Используйте демон logrotate для точного ведения ваших журналов, особенно журналов, связанных с apache.

Краткая информация о logrotate: http://www.scriptinstallation.in/logrotate.html

2 голосов
/ 27 января 2016

Я знаю, что этому посту много лет, но у меня была такая же проблема, и ни один ответ не покрывает его правильно.

Дело в том, что apache создает файл как access_log в соответствии с его конфигурацией. Однако logrotate ищет только *.log, следовательно, имя не соответствует шаблону поиска.

Решения: либо вы добавляете *_log для входа в конфигурацию, либо изменяете конфигурацию apache, чтобы создать файл журнала с именем access.log. Изменение конфигурации Apache требует перезагрузки Apache.

1 голос
/ 06 декабря 2016

Простым решением является отключение access_log, комментируя только одну строку в файле конфигурации.

Источник: https://www.mydigitallife.info/how-to-disable-and-turn-off-apache-httpd-access-and-error-log/

Для пользователей Plesk: https://stackoverflow.com/a/41000240/1792240

1 голос
/ 21 октября 2012

Если в Ubuntu сделать:

sudo su
cd /var/log/apache2
rm access.log
rm error.log
touch access.log

При создании этого журнала доступа он волшебным образом запускает и журнал ошибок.

0 голосов
/ 13 августа 2010

Переименуйте файл, создайте новый access_log, затем перезапустите Apache.

0 голосов
/ 14 мая 2010

Переименуйте файл в другое имя файла и создайте новый файл с именем access_log и перезапустите apache (в противном случае apache сохраняет блокировку файла и не «видит» изменение файла)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...