Как удалить старые файлы журнала, используя скрипт - PullRequest
0 голосов
/ 03 августа 2011

мой каталог журналов, содержащий следующие файлы

access.log

defaultAuditrecorder20110901.log (это 31-й июньский файл журнала)

defaultAuditrecorder20110901.log (это первый сгенерированный файл журнала)

defaultAuditrecorder20110902.log (это второй сгенерированный файл журнала)

defaultAuditrecorder.log (это текущий запущенный файл журнала)

mng1.log001

mng1.log002

mng1.log003 .............. и так далее ...

мое требование - использовать сценарий оболочки, мне нужно удалить только файлы журнала defaultauditrecord, кроме текущего и предыдущего дня .

Ответы [ 2 ]

4 голосов
/ 03 августа 2011

Рассмотрите возможность использования logrotate.Он позволяет вам удалять (или сжимать, вращать и т. Д.) Файлы журналов и вполне настраиваем.Это, вероятно, более надежно, чем использование собственного сценария.

Редактировать: Вот учебник .

2 голосов
/ 03 августа 2011

Самый простой механизм - использовать команду поиска.

find /var/log -mtime +2d -a -type f -print

Здесь будут найдены все файлы, которые были изменены более 2 дней назад. Чтобы связать его в команду удаления, вы должны использовать:

find /var/log -mtime +2d -a -type f -print0 | xargs -0 rm

В этом примере я использовал / var / log, вы бы заменили каталог, содержащий журналы. Причина использования -print0 и xargs -0 заключается в том, что если файл содержит пробелы, он не будет обработан командой rm должным образом.

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