Как удалить журналы автоматически после определенного времени и перезапустить процесс, который заполняет файл журнала?

Сервером является Ubuntu 16.04. У меня есть процесс, работающий с nohup это входит в локальный файл. Этот файл становится достаточно большим для потребления 100%-го дискового пространства. Для разрешения этого, я должен уничтожить процесс сначала и затем удалить файл журнала. Затем я перезапускаю процесс. Как я могу разрешить это со сценарием или некоторым другим инструментом?

6
задан 6 April 2019 в 00:14

2 ответа

Я предполагаю, что Вы запускаете сценарий/программу с nohup как

nohup scriptname 1>logfile.log 2>& &

Я рекомендовал бы вместо того, чтобы удалить файл журнала только для очистки его с

echo -n >logfile.log

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

4
ответ дан 23 November 2019 в 07:18

С logrotate можно настроить, как большой файл журнала может добраться или после сколько времени:

  • файлы журнала повернуты (log.n становящийся журналом n+1 и последним удаляемым файлом журнала)

  • текущий файл журнала является усеченным, не нарушая запись.

Смотрите на man 8 logrotate.

14
ответ дан 23 November 2019 в 07:18

Другие вопросы по тегам:

Похожие вопросы: