ssh远程执行命令脚本(结合ssh反向映射使用)
工作中,有时候遇到ssh反向映射断开的情况。每次需要手动登录机器执行映射脚本
而如果把映射脚本改成每隔60秒自动映射,不管是否已经处于映射状态也会出问题。
现在准备好脚本,能够判读映射是否存在。如果映射已经存在就不映射,如果映射不存在那么映射下。
脚本内容如下,脚本名是伪装成tomcat相关的(特殊需求)。
粗糙点的脚本如下
[root@linux-node2 scripts]# cat tomcat_profile.sh #!/bin/bash while true do PORTED=`ssh portmap@10.0.3.161 -p 22 "lsof -i:33001" |wc -l` if [ $PORTED -eq 0 ];then echo hehe source /scripts/tomcat_profile sleep 10 else sleep 20 fi done
优雅点如下
[root@linux-node2 scripts]# cat tomcat_profile.sh.bak #!/bin/bash RE_SSH_PORT=22 RE_PORT=33001 RE_SSH_USER=portmap RE_SSH_IP=10.0.3.161 SCRIPT_HOME=/scripts while true do PORTED=`ssh $RE_SSH_USER@$RE_SSH_IP -p $RE_SSH_PORT "lsof -i:$RE_PORT" |wc -l` if [ $PORTED -eq 0 ];then echo hehe source ${SCRIPT_HOME}/tomcat_profile sleep 10 else sleep 20 fi done [root@linux-node2 scripts]#
然后通过下面命令加入死循环
nohup sh tomcat_profile.sh >/dev/null 2>&1 &