我有一个bash脚本,它接受一个IP地址列表,并每15秒ping一次以测试连接。其中一些IP地址是我有能力控制的服务器和计算机。我希望能够做到以下几点:
我已经设置了所有设置的代码,每15秒对这些计算机执行一次并显示。我希望实现的是不 ping我的受控计算机。他们将向bash脚本发送命令。我知道这可以通过编写文件和阅读这样的文件来完成,但我想要一种改变显示的方法 AS IT HAPPENS 。 mkfifo
会成为可行的选择吗?
答案 0 :(得分:0)
是的,mkfifo
可以胜任此任务。例如,这个:
mkfifo ./commandlist
while read f < ./commandlist; do
# Actions here
echo $f
done
将等待,直到可以从FIFO commandlist
读取新行,将其读入$f
并执行正文。
从外部,使用以下命令写入FIFO:
echo 42 > ./commandlist
但是,为什么不让远程服务器调用这个脚本,也许是通过SSH甚至是CGI?您可以设置不带参数的/notify-disconnect
CGI脚本,并从REMOTE_ADDR
环境变量中获取对等体的IP地址。