2017-08-10 124 views
-1

shell腳本應該檢查文件是否在30分鐘內到達。如果在30分鐘內未到達,腳本應該失敗。失敗的shell腳本

interval=2 
((end_time=${SECONDS}+30)) 

directory=/app/mus/storepick/dataflowextract/shell 
file=backup.cfg 

while ((${SECONDS} < ${end_time})) 
do 
    if [[ -r ${directory}/${file} ]] 
    then 
     echo "File has arrived." 
     exit 0 
    fi 
    sleep ${interval} 
done 

echo "File not arrivied !!!" 

exit 42 

回答

0

你還沒有提到什麼不能正常工作。但是,我會猜測腳本太早退出,聲稱文件尚未到達。

你計算END_TIME爲${SECONDS} + 30 - 這是隻有30到未來,而不是30分鐘。對於未來30分鐘,您需要${SECONDS} + 1800

+0

謝謝!我的代碼工作正常,但是如果它在30分鐘內沒有收到文件,那麼腳本應該失敗,我已經保留了30秒用於測試目的。 –