В make
вы можете ссылаться на цель
как $ @
. Так что вы можете сделать это в своем случае:
shift; echo -e "\tg++ -ansi -Wall -g -o \$@ $@" >> Makefile
Проверьте программу 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.
Вы можете добавить что-то подобное в свой скрипт перед добавлением файла.
FILE="your-file"
if test $(( $(stat -c"%s" "$FILE") )) -ge "$(( 200*1024*1024 ))"; then
mv "$FILE" "$FILE-$(date +"%FT%T")"
fi