我需要每10分钟运行一次shell脚本。 每次脚本运行时,我都会将输出附加到日志文件中。 一旦日志文件的大小达到10 MB,我需要停止脚本运行。 怎么能实现这一点,请帮助!!
./test.sh >> log_file
答案 0 :(得分:1)
maximumsize=10000 #KB
while :
do
./test.sh >> log_file
actualsize=$(du -k log_file | cut -f 1)
if [ $actualsize -gt $maximumsize ];then
echo "logsize exceed.stop."
break
fi
sleep 600
done
答案 1 :(得分:0)
你应该修改你的测试脚本:把你的进程放到一个函数中,把你的函数添加到循环中,循环的条件(日志文件的大小在10MB以下),在循环结束时添加一个{{1}等待十分钟
答案 2 :(得分:0)
如果日志文件>您可以在test.sh脚本的开头添加一个测试。 10MB然后不运行(退出),或者你可以存档(可能是gzip -9
或xz -9
)日志,如果它是所有文本输出那么它应该压缩很多。或者你可以通过gzip管道脚本的输出来立即压缩它。
并且还使用cron / anacron定期运行脚本,例如将*/10 * * * * user test.sh
添加到/ etc / crontab ...