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

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

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

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

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

3 ответа

Решение

Я бы использовал logadm, чтобы вращать журналы для вас. В последнем базовом образе (13.1.0) есть запись логадма по умолчанию для вращающихся журналов 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

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

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