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 &

  

 

posted on 2019-03-01 21:46  nmap  阅读(425)  评论(0编辑  收藏  举报

导航