Очистка файлов журналов в 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
удаление открытого файла не освободит хранилище файлов