Для этого следует использовать ротацию журнала . В большинстве дистрибутивов logrotate
работает ежедневно (по крайней мере ), и многие пакеты добавляют свои журналы в конфигурацию logrotate.
В качестве примера возьмем error.log
, если вы видите файлы в том же каталоге, что и
error.log.1
error.log.2.gz
error.log.3.gz
значит ротация журналов уже запущена. Текущий файл по-прежнему error.log
, первый поворот — error.log.1
, а последующие повороты сжимаются для экономии места.
Чтобы проверить, работает ли logrotate
, найдите сценарий /etc/cron.daily/logrotate
-, который указывает cron
запускать logrotate
ежедневно. (Вы можете делать это каждый час, если хотите. Некоторые дистрибутивы имеют другой путь, см. ссылку ниже.)
Чтобы убедиться, что logrotate
ротирует определенный журнал, найдите файлы конфигурации в /etc/logrotate.d/
. Если журналов httpd нет, просмотрите один из существующих файлов в качестве примера или изучите man logrotate
.
Дополнительная информация:Общие сведения об утилите logrotate
(Ротация журналов не является полным ответом, если у вас так много сообщений, что выход за один день или один час неуправляем.)
Переменные не раскрываются при использовании одинарных кавычек. Вместо этого используйте двойные кавычки:
sed -i "${line_number}"'s/^/#/' file.txt
Вам не нужен &
. Это означает вставить целое совпадение, которое пусто.