Назад | Перейти на главную страницу

Очистка файлов журнала в Solaris для манифеста службы

У меня есть сервисный манифест в Solaris (на самом деле Smart OS), и я хотел бы периодически очищать его файлы журнала автоматически или вручную, не выключая сервер.

Мой журнал здесь:

/var/svc/log/site-myapp-joyent-smartos-node-service-manifest-1:default.log

Есть ли способ очистить его, ограничить размер или переместить?

Я бы использовал logadm, чтобы повернуть журналы за вас. В последнем базовом образе (13.1.0) есть запись logadm по умолчанию для ротации журналов SMF (проверьте файл /etc/logadm.conf):

smf_logs -C 3 -c -s 1m /var/svc/log/*.log

Эта запись будет чередовать журналы службы SMF всякий раз, когда они достигают размера 1 м (-s 1 м), сохранять только 3 версии после каждого поворота (-C 3) и вращать журнал, копируя исходный файл журнала, а затем усекая его до нуля (-c ). Приятная вещь в приведенном выше описании заключается в том, что это определение logadm на основе шаблонов, поэтому вы можете запустить его вручную с помощью:

logadm smf_logs

В базовом образе 13.1.0 есть запись crontab (от имени пользователя root) для запуска logadm один раз в час.

10 * * * * /usr/sbin/logadm

Почасовой cron хорош для ротации на основе размера и помогает контролировать ситуацию, если некоторые журналы имеют тенденцию к довольно быстрому росту.

Вы можете сделать это, написав скрипт, а затем создав задание cron для периодического запуска скрипта.

любой открытый файл можно обнулить с помощью> file.name

удаление открытого файла не освободит хранилище файлов