-
-
Save oesteban/1092aca73a78a2f820f94160d195062a to your computer and use it in GitHub Desktop.
launches and maintains uniquely named autossh tunnels alive
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
# | |
# Author: Andreas Olsson <[email protected]> | |
# Version: @(#)autossh_tunnel.foo 0.1 27-Aug-2008 [email protected] | |
# | |
# 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 12345:localhost:12345" | |
# remote user | |
RUSER="foobar" | |
# remote server | |
RSERVER="host.domain.tld" | |
# 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment