可恨的是又不能直接把这些标准输出扔/dev/null,因为这个不是一行命令,是expect
具体代码如下:
-
#!/bin/bash
-
ip="172.16.3.2"
-
ip_file="/tmp/hosterhub_leader_ip"
-
log="/tmp/check_hosterhub.log"
-
cat /dev/null >$log
-
-
/usr/bin/expect <<-EOF
-
set timeout 2
-
log_file $log
-
spawn /home/clouder/vs/script/hosterhub.sh
-
send "@quit\r"
-
expect eof
-
EOF
-
-
leaderip=$(awk -F "," '/^{leader/{split($1,a,"[:/]");print a[2]}' $log)
-
echo "${leaderip}" >>${ip_file}
-
-
if [ -z $leaderip ];then
-
echo "hosterhub leader is not exist"
-
exit 2
-
else
-
[ $leaderip != $ip ] && echo "hosterhub leader has changed" && exit 1
-
echo "hosterhub leader state is ok"
-
exit 0
- fi
-
#!/bin/bash
-
ip="172.16.3.2"
-
ip_file="/tmp/hosterhub_leader_ip"
-
log="/tmp/check_hosterhub.log"
-
cat /dev/null >$log
-
collectinfo()
-
{
-
/usr/bin/expect <<-EOF
-
set timeout 2
-
log_file $log
-
spawn /home/clouder/vs/script/hosterhub.sh
-
send "@quit\r"
-
expect eof
-
EOF
-
}
-
-
collectinfo &>/dev/null
-
leaderip=$(awk -F "," '/^{leader/{split($1,a,"[:/]");print a[2]}' $log)
-
echo "${leaderip}" >>${ip_file}
-
-
if [ -z $leaderip ];then
-
echo "hosterhub leader is not exist"
-
exit 2
-
else
-
[ $leaderip != $ip ] && echo "hosterhub leader has changed" && exit 1
-
echo "hosterhub leader state is ok"
-
exit 0
- fi