Linux脚本没有在crontab中运行,因为它可以手动运行

时间:2011-05-18 12:54:59

标签: linux

我有一个脚本,用于检查日志文件的大小。如果日志文件大小是(追加日志)增加那么它什么都不做,但如果它没有增加,那么它会说某些事情或发短信给我。

逻辑是:此文件每隔3分钟在crontab上运行,每天上午8点到晚上10点。

1)晚上00小时msize.txt文件将为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

请尽快帮助我

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果您只在08:00到22:00之间从crontab运行此脚本,请输入以下代码:

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

永远不会被运行?