2014-05-01 215 views
0

我需要每10分钟运行一次shell脚本。 每次脚本运行时,我都会将输出追加到日志文件中。 当日志文件的大小达到10 MB时,我需要停止运行脚本。 这怎么能实现,请大家帮忙!!如何每10分钟运行一次脚本

./test.sh >> log_file 
+3

使用'cron'或'anacron' –

+3

或'watch'命令。 –

回答

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 
0

你应该修改你的测试脚本:把你的过程变成一个功能,添加功能到一个循环,循环(下10MB日志文件的大小)的条件,并在循环的末尾添加sleep 600等待十分钟

0

你可以添加到您的test.sh脚本测试开始,如果日志文件> 10MB然后不要运行(退出),或者你可以存档(也许gzip -9xz -9)的日志,如果它是全部文本输出,那么它应该压缩一个LOT。或者你可以通过gzip管脚本的输出来立即压缩它。

而且还使用cron/anacron的定期运行该脚本,如添加*/10 * * * * user test.sh到/ etc/crontab中......