Краткая инстуркция
Примеры:Команда в консоли для удаления файлов старше 180 дней:
find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
Автоматическое удаление с помощью cron (планировщик задач в Linux):
Просмотр записей в cron:
crontab -l
Редактирование заданий от текущего пользователя (открывается в редакторе vi):
crontab -e
Нужно добавить эту запись и сохранить, смотрите как пользоваться редактором vi здесь.
12 2 * * * root find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
Ежедневно в 2:12 ночи будет запускаться команда от пользователя root.
Формат cron:
* * * * * | | | | | | | | | +----- Дни недели (диапазон: 1-7) | | | +------- Месяцы (диапазон: 1-12) | | +--------- Дни месяца (диапазон: 1-31) | +----------- Часы (диапазон: 0-23) +------------- Минуты (диапазон: 0-59)
Подробнее про формат cron здесь
Подробная инструкция
Удаление старых записей в Asterisk и устаревших файлов в Linux
При высокой нагрузке на сервер Asterisk, особенно если включена запись разговоров для всех абонентов, необходимо периодически удалять устаревшие файлы, чтобы освободить место на диске и поддерживать стабильную работу системы. В этой инструкции подробно рассмотрены способы удаления таких файлов как вручную, так и автоматически через планировщик задач cron.
Ручное удаление старых записей в Asterisk
Чтобы удалить файлы записей звонков, хранящиеся в каталоге /var/spool/asterisk/monitor
, можно использовать команду find
, которая позволяет находить файлы по их дате создания.
Пример:
find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
/var/spool/asterisk/monitor
— путь к папке, где хранятся записи разговоров.-mtime +180
— указывает, что удаляться будут файлы, старше 180 дней.-exec rm -R {} \;
— команда, которая удаляет найденные файлы.
Чтобы выполнить удаление с подтверждением каждого файла, можно использовать:
find /var/spool/asterisk/monitor -mtime +180 -ok rm -R {} \;
Для проверки, какие файлы будут удалены, используйте find
без удаления:
find /var/spool/asterisk/monitor -mtime +180 -ls
Автоматическое удаление файлов через cron
Чтобы настроить автоматическое удаление старых записей, можно воспользоваться планировщиком задач cron, который позволяет выполнять команды по расписанию.
Просмотр текущих заданий cron
Для отображения всех запланированных задач от текущего пользователя выполните команду:
crontab -l
Редактирование cron-заданий
Для редактирования списка задач используйте команду:
crontab -e
По умолчанию, файл откроется в редакторе vi или nano (в зависимости от настроек системы).
Добавление задания на автоматическое удаление файлов
Добавьте следующую строку в crontab
, чтобы ежедневно в 2:12 ночи удалялись записи старше 180 дней:
12 2 * * * root find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
Расшифровка cron-формата
* * * * *
| | | | |
| | | | +----- День недели (0 - вс, 1 - пн, ..., 6 - сб)
| | | +------- Месяц (1-12)
| | +--------- День месяца (1-31)
| +----------- Часы (0-23)
+------------- Минуты (0-59)
Пример записи:
12 2 * * *
— выполнение в 02:12 каждую ночь.root
— выполнение от имени суперпользователя.find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
— команда поиска и удаления файлов.
Дополнительные примеры cron-записей
- Удаление файлов раз в неделю по воскресеньям в 3:00 ночи:
0 3 * * 0 root find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
- Удаление файлов каждый день в полночь:
0 0 * * * root find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \;
Дополнительные настройки безопасности
-
Запись лога об удаленных файлах: Чтобы сохранять информацию об удаленных файлах в лог, можно изменить команду следующим образом:
find /var/spool/asterisk/monitor -mtime +180 -exec rm -R {} \; -print >> /var/log/asterisk_cleanup.log
-
Использование
tmpwatch
для автоматической очистки: В некоторых дистрибутивах Linux можно использоватьtmpwatch
для автоматического удаления файлов старше определенного времени:tmpwatch --mtime --nodirs 180 /var/spool/asterisk/monitor
Это удобный инструмент, который автоматически очищает файлы по дате последнего изменения.
Автоматическая очистка старых записей Asterisk — важный процесс для поддержания стабильности системы. Использование команд find
и cron
позволяет автоматизировать удаление, снижая нагрузку на сервер и освобождая дисковое пространство. Для дополнительного контроля можно настроить логирование или использовать альтернативные утилиты, такие как tmpwatch
. Регулярный мониторинг и настройка правильных параметров гарантируют бесперебойную работу Asterisk без риска переполнения диска.