Skip to content

Instantly share code, notes, and snippets.

@marshyon
Created January 22, 2015 16:02
Show Gist options
  • Save marshyon/a505035bd39ec2376b5d to your computer and use it in GitHub Desktop.
Save marshyon/a505035bd39ec2376b5d to your computer and use it in GitHub Desktop.
CENTOS : Using SSH and AutoSSH, it is possible to set up resilient port forwarded connections for the like of MySQL replication. When the tunnel has been established, the normal procedure for configuring a Master / Slave applies with a client set up of MASTER_HOST='127.0.0.1', MASTER_PORT = 3307. Ensure on systems that employ selinux to either a…
#!/bin/bash
# autossh daemon
# chkconfig: 345 20 80
# description: autossh daemon
# processname: autossh
DAEMON_PATH="/home/autossh"
DAEMON="/usr/bin/sudo"
DAEMONOPTS="-u autossh /usr/bin/autossh -M 20043 -N -L 3307:127.0.0.1:3306 -p 22 xx.xx.xx.xx"
NAME=autossh
DESC="starts and maintains a socket to xx.xx.xx.xx MySQL master for making mysql connections through a local port 3307"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
case "$1" in
start)
printf "%-50s" "Starting $NAME..."
cd $DAEMON_PATH
PID=`$DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!`
echo "Saving PID" $PID " to " $PIDFILE
if [ -z $PID ]; then
printf "%s\n" "Fail"
else
echo $PID > $PIDFILE
printf "%s\n" "Ok"
fi
;;
status)
printf "%-50s" "Checking $NAME..."
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
printf "%s\n" "Process dead but pidfile exists"
else
echo "Running"
fi
else
printf "%s\n" "Service not running"
fi
;;
stop)
printf "%-50s" "Stopping $NAME"
PID=`cat $PIDFILE`
kill $PID
rm $PIDFILE
echo "killed "${PID}
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {status|start|stop|restart}"
exit 1
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment