|
发表于 2011-8-30 15:13:09
|
显示全部楼层
Post by 糊涂;2148905
ssh带不同参数,为不同主机各建一条隧道。我想在连接主机的脚本里首先检测隧道是否已经创建,如果已经创建则直接连接,如果没有创建则先创建再连接。
- if [隧道尚未创建] then
- ssh -Nf -L 32768:10.11.12.13:3389 1.2.3.4
- fi
- ssh localhost -p 32768
-
复制代码 由于创建每个隧道都是ssh命令,因此仅仅判断命令名(即ssh)是不够的,必须根据命令及后面的参数(端口值)区分每个不同的隧道。这里假定每个隧道的本地映射端口是预先规定好的。
请教:
如何写if的条件?
建一个临时目录, 文件名为主机名, 内容为ssh的PID
for X in "host list"; do
HOSTFILE="/path/to/temp/$X"
if [ -f $HOSTFILE ]; then
SSHID=`cat $HOSTFILE`
fi
if [ x"$SSHID" = "x" -o `ps -p $SSHID >/dev/null` ]; then
ssh -xxxx &
echo $! > $HOSTFILE
fi
done
如果有其它参数可用一份包参数的文件, 用while read X X X X ; 方式 |
|