2011-05-18 95 views
0

我有一个脚本来检查日志文件的大小。如果日志文件的大小是(附加日志)增加,那么它什么都不做,但如果它不增加,那么它会说一些事情,或者给我发短信。Linux脚本没有在crontab中运行,因为它手动运行好了

逻辑是:该文件在crontab中每3分钟运行一次,每天08:00到22:00。

1)在晚上00小时msize.txt文件将00 00 2)在早上08小时大小变量读取msize.txt文件中的数据,并与size2变量比较,如果size2小于或等于大小,那么我有短信。 size2个变量取在脚本日志文件的文件大小.. 后完成size2个变量值写入msize.txt文件....

当我手动将其确定msize.txt运行此脚本会发生什么是修改,但在crontab中msize.txt没有修改或创建....

脚本是:-----

dt=`date +%H` 


if [ $dt -eq 00 ] 
then 
echo $dt > msize.txt 
fi 

size=`cat msize.txt` 
#echo $size 
size2=`du /pretupsvar/pretups_smsrlogs/messageSentLog.log| awk '{print $1}'` 
name=`uname -n` 

if [ $size2 -le $size ] 
then 
Do Somthing 



#echo "not happen" 
fi 

echo $size2 > msize.txt 

请帮我尽快

+1

你可以发布相应的crontab行吗? – bmk 2011-05-18 13:02:51

回答

1

该脚本假定msize.txt位于当前工作目录中。当您手动运行脚本时,可能当前的工作目录就是该文件所在的位置。但是,当脚本从cron运行时,工作目录就是您的主目录。您需要使用该文件的完整路径或脚本中的cd命令来适当地设置工作目录。

+0

感谢您的支持 – 2011-05-18 13:22:22

+0

为了表示感谢,习惯性地注册有用答案并“接受”正确答案...... – 2011-05-18 14:07:41

0

如果你只从运行crontab的08:00和22:00的代码之间的这个脚本:

if [ $dt -eq 00 ] 
then 
echo $dt > msize.txt 
fi 

永远不会运行?