我想写一个script 侦测某台机器的5432 port
搭配 keepalived 使用
指令长这样
</dev/tcp/127.0.0.1/80
对,就这样而已,如果直接在shell 底下执行,正常的话就不会有输出
但是我直接加到 keepalived.conf 里面,会说找不到这指令
Script </dev/tcp/192.168.11.34/5432 cannot be accessed - No such file or directory
所以我想说用script 来跑
script 也很简单,就是跑上面那行指令
#!/bin/sh
COMMAND="</dev/tcp/127.0.0.1/80"
echo "$COMMAND"
eval "</dev/tcp/127.0.0.1/80"
执行结果
/tmp/check_psql.sh
</dev/tcp/127.0.0.1/80
/tmp/check_psql.sh: 1: eval: cannot open /dev/tcp/127.0.0.1/80: No such file
指令格式应该没有错,可是eval 少了一个 "<" 所以我改了一下,加入escape "\"
变成这样
/tmp/check_psql.sh
</dev/tcp/127.0.0.1/80
/tmp/check_psql.sh: 1: eval: </dev/tcp/127.0.0.1/80: not found
所以指令格式正确了,可是还是没办法顺利执行
不晓得该怎么修正呢?
或者是有其他指令可以侦测特定port 是否活着?