【发布时间】:2017-02-01 21:58:07
【问题描述】:
我有一个像下面这样的文本文件,带有 host、site 和 port 到 telnet
Hostname site port
appwlsqa02.comp.xxx.com fgh-fst13-scan.comp.xxx.com 1521
appwlsqa03.comp.xxx.com fgh-fst23-scan.comp.xxx.com 1521
cappwlsqa01.comp.xxx.com fgh-fst13-scan.comp.xxx.com 1521
我的目标是 ssh 每个hostname 并执行 telnet 命令
例如文件中的第一行
ssh appwlsqa02.comp.xxx.com
那么,
telnet fgh-fst13-scan.comp.xxx.com 1521
我在下面尝试过:
while read HOST site port ; do ssh $HOST "echo exit | telnet $site $port " < /dev/null; done < text.txt`
我必须将hostnames 读取为一个变量$HOST,并将主机读取为$site,并将端口读取为$port
更新:
这是我根据建议开发的脚本:
# /bin/bash
while read HOST site port ;
do
echo $HOST $site $port
ssh -n $HOST "telnet $site $port | grep "Connected" " >> t.txt &
PID=$!
sleep 2
kill "$PID"
if [ -s t.txt ]
then
echo from $HOST to $site $port is open >> succ.txt
else
echo from $HOST to $site $port is closed >> fail.txt
fi
rm t.txt
done < text.txt
【问题讨论】:
标签: python bash shell awk grep