Данные добавляются в файл, и когда их значение превысит 200 МБ, должен быть создан новый файл

В make вы можете ссылаться на цель как $ @ . Так что вы можете сделать это в своем случае:

shift; echo -e "\tg++ -ansi -Wall -g -o \$@ $@" >> Makefile
1
02.11.2016, 17:32
2 ответа

Проверьте программу logrotate. Сначала создайте конфигурационный файл, скажем, /home/john/logrotate/ps.conf, с содержанием вроде этого: (предполагая, что вы сбрасываете вывод ps в /home/john/logrotate/log/ps. log)

/home/john/logrotate/log/ps.log {
    size = 200MB
    missingok
    notifempty
}

Затем вы можете создать кронтаб для запуска /usr/bin/logrotate /home/john/logrotate/ps.conf. Дополнительные опции, такие как сжатие, см. в man.

0
27.01.2020, 23:47

Вы можете добавить что-то подобное в свой скрипт перед добавлением файла.

FILE="your-file"
if test $(( $(stat  -c"%s" "$FILE") )) -ge "$(( 200*1024*1024 ))"; then
    mv "$FILE" "$FILE-$(date +"%FT%T")"
fi
1
27.01.2020, 23:47

Теги

Похожие вопросы