сценарий оболочки для обрезки файлов error_log во всех учетных записях на сервере

близкие!

Вот моя проблема: у меня есть выделенный сервер, использующий cPanel, на котором размещено несколько учетных записей. Около 20 из этих учетных записей ежедневно генерируют огромные файлы error_log, иногда более 7 ГБ, что занимает все дисковое пространство учетной записи, не говоря уже о том, что это загромождает сервер! У меня сейчас нет ни времени, ни знаний, чтобы выяснить и исправить причину проблемы в каждой из этих учетных записей. Поэтому я хотел бы сценарий оболочки, который обрезал бы эти файлы error_log во всех учетных записях до максимального размера 500 КБ, чтобы они не вырастали такими большими. И cronjob для ежедневного запуска.

Может ли кто-нибудь помочь мне с этим?

ТИА! :)


person Patty    schedule 16.08.2017    source источник


Ответы (1)


Используйте команду truncate, чтобы уменьшить или увеличить размер каждого ФАЙЛА до указанного размера:

truncate -s 0 {filename.txt}
ls -lh filename.txt
truncate -s 0 filename.txt
ls -lh filename.txt

Опция -s используется для установки SIZE в ноль. См. справочную страницу команды truncate для получения более подробной информации.

man truncate
person raizsh    schedule 16.08.2017
comment
Спасибо за ваш ответ. Значит, я заменяю filename.txt на error_log и сохраняю его в файле, который будет вызываться cronjob? Повлияет ли это на каждый журнал ошибок на сервере? Прошу прощения за невежество, я не программист. :( - person Patty; 17.08.2017
comment
У вас может быть cron, который регулярно запускается с фиксированными интервалами и запускает команду truncate для имен файлов, по которым выгружаются ваши журналы. Это усекло бы файл журнала. - person raizsh; 17.08.2017