Я сделал что-то вроде этого в прошлом.
ps -A -o etime,pid,user,args| grep init
возвраты
180-04:55:20 1 root init [5]
Который легко способен синтаксическим анализом в жемчуге. Я использовал разделение и поп для парсинга его.
Формат является [[dd-] гд:] mm:ss
Самый легкий способ убрать старые журналы не состоит в том, чтобы удалить их.
Лучший способ очистить журналы также logrotate
как Hanan N. Pointed или:
find /var/log -type f -exec /bin/cp /dev/null {} \;
для каждого из файлов журнала. Я не абсолютно уверен, к каким записям в журнале Вы обращаетесь от предыдущей начальной загрузки, но если Вы хотите очистить это после начальной загрузки, можно поместить команду выше в /etc/rc.local
сценарий так весь вход для после начальной загрузки.
Обычно, хотя Вы не хотите убирать журналы, так как они - Ваша начальная точка во всем поиске и устранении неисправностей.
Поскольку, что Вы делаете, может быть лучше добавить дополнительный файл журнала для сообщений ядра. Некоторые демоны журнала позволят Вам выполнять соответствия на записанных записях, так, чтобы Вы только получили соответствующие записи в своем файле. Можно затем повернуть, удалить или переименовать файлы между выполнениями. (Если Вы не перезагружаете, Вы, возможно, должны отправить Сигнал HUP демону журнала, чтобы заставить это вновь открыть свои файлы.
Существуют также инструменты, которые извлекут только новые записи из журнала. logtail
утилита от logcheck
пакет является одной такой утилитой. Это может быть выполнено с альтернативным файлом смещения.
Существуют другие инструменты, которые наблюдают журналы за записями, соответствующими шаблону и сообщающими о них. Один из них мог бы работать хорошо на Вас.
Похоже, это работает нормально (на Ubuntu LTS 14.04), вращая свои журналы в чистый журнал, а затем удалить старые записи журнала. Это похоже на метод cp /dev/null, но я думаю, что это чище. ymmv
logrotate --force /etc/logrotate.conf
find /var/log/ -name '*[0-5]*' -exec rm {} \;
find /var/log/* -exec cp /dev/null {} \;
? – jjmontes 26.12.2011, 13:06