【发布时间】:2017-10-10 21:21:29
【问题描述】:
我有一个无限期运行的 bash 脚本。我一直在寻找解决方案,将定时事件添加到每 5 分钟触发一次的脚本中,同时脚本的其余部分继续运行。我不能让脚本休眠,因为它不断地向服务器发送/接收信息。有没有人有任何功能或想法可以做到这一点。基本上我希望它每 300 秒(5 分钟)向服务器发送一个特定的命令。我无权重写服务器代码以每 5 分钟请求一次命令。
基本上主脚本是这样的:
#!/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 语句进行检查,但它往往会在重置 start 变量之前多次触发命令。 ..服务器也喜欢在检测到垃圾邮件时断开链接,因此在短时间内发送 10 次以上的相同命令并不理想。
【问题讨论】:
-
您希望每 300 秒运行一次的命令是什么? (或)是整个脚本吗?
-
我只需要让它每 5 分钟回显一次 "alive" >&3...没什么特别的......这将防止服务器与脚本断开连接