2011-05-18 93 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 

永遠不會運行?