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

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

Ответы [ 2 ]

14 голосов
/ 02 апреля 2019

С помощью logrotate вы можете настроить размер файла журнала или через сколько времени:

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

  • текущий файл журнала усекается без нарушения процесса записи.

Взгляните на man 8 logrotate.

4 голосов
/ 02 апреля 2019

Я полагаю, что вы запускаете скрипт / программу с nohup, как

nohup scriptname 1>logfile.log 2>& &

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

echo -n >logfile.log

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

...