Я написал скрипт, который запускается ps -ef
каждые 5 минут, и вывод добавляется в файл. Я хочу, чтобы новый файл создавался, когда текущий размер файла превышает 200 МБ. Может ли кто-нибудь мне помочь с этим?
решение1
Вы можете добавить что-то подобное в свой скрипт, прежде чем добавлять файл.
FILE="your-file"
if test $(( $(stat -c"%s" "$FILE") )) -ge "$(( 200*1024*1024 ))"; then
mv "$FILE" "$FILE-$(date +"%FT%T")"
fi
решение2
Проверьте logrotate
программу. Сначала создайте файл конфигурации, скажем, /home/john/logrotate/ps.conf
, с таким содержимым: (предполагая, что вы выгружаете свой ps
вывод в /home/john/logrotate/log/ps.log
)
/home/john/logrotate/log/ps.log {
size = 200MB
missingok
notifempty
}
Затем вы можете создать crontab для запуска /usr/bin/logrotate /home/john/logrotate/ps.conf
. Смотритемужчинадля получения дополнительных опций, таких как сжатие.