[已解決]Shell Script 排程請益 (Ubuntu 16.04) crontab

已解決
https://www.opencli.com/linux/shell-script-read-argument
加上&符號即可..


版上各位大大先進好,

我的伺服器有架設syslog server,會收容各式告警,並存成syslog.log,
於是我寫了一個Shell Script,每6秒檢查一次syslog.log是否產生新檔案,
為了避免系統崩潰重啟,所以一旦執行此SH,都要輸入行數,
目前都是SSH到這台伺服器,執行輸入行數後,該shell script就會一直跑(因無窮迴圈),
只是這樣的方式似乎有點麻煩,變成我得一台client持續連線,
是否有什麼辦法可以在不修改程式碼下改善呢??

因為要輸入行數,所以無法使用crontab排程執行,凡請各位大大不吝解惑,感恩。
還是其實有辦法可以利用crontab呢??
程式碼如下:

read -p "輸入行數(wc -l syslog)" row
while [ 3 -gt 0 ]
do
syslog=$(wc /var/log/remote/syslog.log | awk '{print $1 "\t"}')
let syslog=syslog+1
echo "從" $row "開始,共$syslog行"
while [ $row -lt $syslog ]
do
send=$(sed -n $row"p" /var/log/remote/syslog.log )
RES=$(curl -X POST -d "shvvvv='$send'" "http://127.0.0.1/ck_sys.php")
echo $RES
if [[ $RES == "NO" ]]
then
echo "NO"
else
curl -X POST -H 'Content-Type: application/json' -d "$RES" "http://127.0.0.1/api.php"
echo "SEND"
fi
row=$(($row + 1))
sleep 3
done
sleep 3
done
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!