我有一個無限期運行的bash腳本。我已經搜索了高和低的解決方案,將定時事件添加到腳本中,每5分鐘觸發一次,而腳本的其餘部分則繼續運行。我不能讓腳本進入睡眠狀態,因爲它不斷向服務器發送/接收信息。有沒有人有任何功能或想法來實現這一點。基本上我希望它每300秒(5分鐘)發送一個特定的命令到服務器。我無法重寫服務器代碼以每5分鐘請求一次命令。Bash中的計時器事件
基本上主要的腳本是與此類似:
#!/bin/bash
Var1="localhost"
Var2="2356"
Var3="DSDSASAQ"
Var4= "Admin"
#other variables as needed.
function fun1(){
#do some stuff
}
function fun2(){
#do some stuff
}
function fun3(){
#do some stuff
}
#Main code section.
exec 3<>/dev/tcp/${Var1}/${Var2}
echo "login Var4 Var3" >&3
While read LINE <&3;
do
#do some stuff
done
exit $?
任何幫助表示讚賞。此外,我嘗試了像start = $ SECONDS和duration = $ SECONDS- $ start之類的東西,並在while循環中檢查if ... then語句,但它傾向於多次激發命令,然後重置啓動變量。服務器在檢測到垃圾郵件時也喜歡打破鏈接,所以在短時間內發送相同的命令10次以上並不理想。
你想每300秒運行一次命令是什麼? (或)它是整個腳本? – Inian
我只需要讓它每隔5分鐘回聲一次「活着」>&3 ......沒有什麼奇怪的......這將防止服務器斷開與腳本的連接 – user1305988