码迷,mamicode.com
首页 > 系统相关 > 详细

使用autossh实现开机创建ssh tunnel的方法以及shell脚本.

时间:2015-05-22 02:08:19      阅读:914      评论:0      收藏:0      [点我收藏+]

标签:defaults   service   检测   信息   autossh   ssh tunnel   


 有时候回需要到ssh tunnel,手动使用ssh 创建这些并没有太大的问题,可是如果尝试开机启动,写个shell脚本并在rc.local里面运行这个脚本并不成功,原因也不得而知。 

后来发现了autossh这东东,不单单能够静默模式创建ssh tunnel还能设置自动检测,并自动尝试链接的选项。


本文附件提供的脚本,需要放置在/etc/ini.d/目录下,并使用chmod +x 修改权限。然后也有必要使用update-rc.d service defaults添加入开机启动服务。

当然不要忘记修改脚本中的配置信息。

然后就能够在开机时候自动创建ssh tunnel了。 enjoy it.


#! /bin/bash

# For each tunnel; make a uniquely named copy of this template.


## SETTINGS
#
# autossh monitoring port (unique)
MPORT=54321
# the ssh tunnel to setup
TUNNEL="-L 2003:localhost:2003"
# remote user
RUSER="socieer"
# remote server
RSERVER="socieer.axxeo.de"
# You must use the real autossh binary, not a wrapper.
DAEMON=/usr/lib/autossh/autossh
#
## END SETTINGS

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

NAME=`basename $0`
PIDFILE=/var/run/${NAME}.pid
SCRIPTNAME=/etc/init.d/${NAME}
DESC="the tunnel"

test -x $DAEMON || exit 0

export AUTOSSH_PORT=${MPORT}
export AUTOSSH_PIDFILE=${PIDFILE}
ASOPT=${TUNNEL}" -f -N "${RUSER}"@"${RSERVER}

#  Function that starts the daemon/service.
d_start() {
   start-stop-daemon --start --quiet --pidfile $PIDFILE       --exec $DAEMON -- $ASOPT
   if [ $? -gt 0 ]; then
       echo -n " not started (or already running)"
   else
       sleep 1
       start-stop-daemon --stop --quiet --pidfile $PIDFILE       --test --exec $DAEMON > /dev/null || echo -n " not started"
   fi

}

#  Function that stops the daemon/service.
d_stop() {
   start-stop-daemon --stop --quiet --pidfile $PIDFILE       --exec $DAEMON       || echo -n " not running"
}


case "$1" in
  start)
   echo -n "Starting $DESC: $NAME"
   d_start
   echo "."
   ;;
  stop)
   echo -n "Stopping $DESC: $NAME"
   d_stop
   echo "."
   ;;

  restart)
   echo -n "Restarting $DESC: $NAME"
   d_stop
   sleep 1
   d_start
   echo "."
   ;;
  *)
   echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
   exit 3
   ;;
esac

exit 0


本文出自 “EIT流浪汉” 博客,请务必保留此出处http://zicowarn.blog.51cto.com/3815716/1653604

使用autossh实现开机创建ssh tunnel的方法以及shell脚本.

标签:defaults   service   检测   信息   autossh   ssh tunnel   

原文地址:http://zicowarn.blog.51cto.com/3815716/1653604

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!