Недавно я включил сжатие в logrotate.conf на нескольких системах. Старые несжатые журналы все еще остаются со своей старой нумерацией. Я хочу запустить скрипт, чтобы поместить эти старые журналы, где они будут численно в ротации, если сжатие не было включено. Эти журналы будут включать в себя messages , boot.log , spooler и другие.

[user@test ~]$ ls -ltr /var/log/messages*
-rw------- 1 root root 283380 Jan 22 03:49 /var/log/messages.4
-rw------- 1 root root 212641 Jan 29 03:59 /var/log/messages.3
-rw------- 1 root root 278964 Feb  5 04:01 /var/log/messages.2
-rw------- 1 root root   7828 Feb 16 04:02 /var/log/messages.7.gz
-rw------- 1 root root  12417 Feb 17 04:02 /var/log/messages.6.gz
-rw------- 1 root root   2289 Feb 18 04:02 /var/log/messages.5.gz
-rw------- 1 root root   2135 Feb 19 04:02 /var/log/messages.4.gz
-rw------- 1 root root   2138 Feb 20 04:02 /var/log/messages.3.gz
-rw------- 1 root root   2403 Feb 21 04:02 /var/log/messages.2.gz
-rw------- 1 root root   2339 Feb 22 04:02 /var/log/messages.1.gz
-rw------- 1 root root   8496 Feb 22 10:19 /var/log/messages

Если бы я переименовал их вручную, я бы сделал mv messages.2 messages.8.tmp для каждого журнала, чтобы ни один файл с именем messages.8 не был перезаписан. После того, как все файлы были переименованы, я бы сделал mv messages.8.tmp messages.8 а затем gzip -9 messages.8 .

Я играл с циклами for и while и sed, но я все еще начинающий сценарист.

Числа для самых последних и самых старых несжатых журналов будут варьироваться от системы к системе.

В будущем я буду сжимать старые журналы перед включением сжатия в logrotate.conf.

В итоге два вопроса:

  1. Есть ли способ, чтобы logrotate.conf распознавал эти старые файлы и сам сжимал их?
  2. Каков наилучший способ сценария ручного поворота туда, где старые файлы журнала будут последовательно, после чего следует сжатие?

2 ответа2

1

Насколько я знаю, logrotate не может поместить старые файлы на их место. Так что вам нужно сделать это вручную / маленьким скриптом.

Обратите внимание, что в зависимости от вашей конфигурации, logrotate вращает старый файл журнала только в течение ограниченного времени, а затем удаляет их. Поэтому восстановление старых файлов резервных копий может оказаться бесполезным, пока вы не измените конфигурацию logrotate, чтобы она никогда не удаляла старые журналы (переменная конфигурации rotate).

0

Поворот журнала не может не gzip messages.? с этим справлюсь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .