Сценарий Bash для очистки/удаления файлов журнала

Каждый сервер генерирует файлы журналов, которые накапливаются со временем. Если не обращать внимания на эти файлы, то вскоре они могут занять много места в системе и повлиять на ее производительность. Поэтому рекомендуется периодически очищать/удалять файлы журналов. Как правило, разработчики и системные администраторы удаляют/очищают файлы журналов раз в 30 дней или раз в 10 дней, если сервер получает много трафика. Может быть утомительно каждый раз вручную очищать/удалять файлы журналов, поскольку это рутинная задача. Поэтому рекомендуется создать сценарий оболочки для очистки/удаления файлов журнала, чтобы автоматизировать эту задачу. В этой статье мы узнаем, как очищать/удалять файлы журналов в Linux.

Сценарий удаления файлов журнала

Команда find - один из самых популярных инструментов для поиска файлов и папок, возраст которых превышает "x" дней. Мы рассмотрим некоторые часто используемые команды find для поиска старых файлов.

Вместо "-exec rm {} \" еще можно использовать ключ -delete

Удаление файлов старше 1 дня

Вот команда для удаления файлов, которые старше 1 дня.

Давайте рассмотрим приведенную выше команду подробнее.

Первый аргумент - это путь к файлам, который может быть файлами, каталогами или даже символами подстановки.

Например, если файлы журнала вашего сервера apache находятся в каталоге /var/log/apache, то вот команда для удаления файлов журнала, которые старше 1 дня.

Далее, -mtime используется для указания количества дней, в течение которых файлы будут удалены. Например, если вы укажете +1, команда find будет искать файлы старше 1 дня.

Третьим аргументом является -exec, который позволяет передать команду для выполнения. Мы используем команду rm, так как хотим удалить файлы. Символ {} \; используется для завершения команды.

Теперь мы рассмотрим некоторые общие случаи использования этой команды.

Удаление файлов старше 7 дней

Ниже приведена команда для удаления файлов старше 7 дней. Замените /path/to/files на путь к файлам журнала или директории.

Удаление файлов старше 30 дней или 1 месяца

Вот команда для удаления файлов старше 30 дней. Замените /path/to/files на путь к файлам журнала или директории.

Удаление файлов старше 6 месяцев

Вот команда для удаления файлов старше 6 месяцев (182 дня). Замените /path/to/files на путь к файлам журнала или директории.

Удаление файлов старше 1 года

Вот команда для удаления файлов старше 1 года (365 дней). Замените /path/to/files на путь к файлам журнала или директории.

Если при выполнении любой из команд вы получаете сообщение 'permission denied', используйте ключевое слово sudo перед командами или переключитесь на пользователя, у которого есть разрешение на удаление файлов, а затем попробуйте выполнить вышеуказанные команды.

Сценарий оболочки для очистки/удаления файлов журнала

Теперь давайте поместим приведенную выше команду в сценарий оболочки. Создайте пустой сценарий оболочки в редакторе nano.

Добавьте в него следующие строки.

Сохраните и закройте файл. Вы можете настроить свой сценарий оболочки, изменив упомянутую в нем команду find в соответствии с вашими требованиями. Мы уже упоминали несколько примеров использования команды find для поиска и удаления файлов. Аналогичным образом вы можете изменить расположение файлов журнала в зависимости от конфигурации вашего сервера.

Сделайте его исполняемым

Теперь вы можете запустить сценарий с помощью следующей команды.

Лучше всего настроить задание cron для запуска этого сценария ежедневно/еженедельно. Для этого выполните следующую команду, чтобы открыть файл crontab.

Добавьте следующую строку, чтобы запускать вышеуказанный сценарий каждый день в 10.00 утра.

Обязательно укажите полный путь к сценарию оболочки в команде cronjob. Сохраните и закройте файл, чтобы создать cronjob.

Заключение

В этой статье мы узнали, как создать сценарий оболочки для удаления/очистки файлов журнала.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий