I have been interested in MySQL replication over ssh and I wanted a way to make sure that the tunnel is always up. Everyone says to use AutoSSH. AutoSSH is not in EPEL, but is in rpmforge (Is that that same as DAG? Didn’t they merge?). I installed rpmforge:
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
I don’t like to do the RepoDance, so I disabled rpmforge:
sed -i "s/enabled = 1/enabled = 0/" /etc/yum.repos.d/rpmforge.repo
Next I installed AutoSSH
yum install --enablerepo=rpmforge autossh</p>
And finally my Bash function to create an AutoSSH tunnel:
function StartAutoSSH {
. /etc/rc.d/init.d/functions
AUTOSSH_PIDFILE=/var/run/autossh.pid # we are assuming only one autossh tunnel
if [ ! -e $AUTOSSH_PIDFILE ]; then
AUTOSSH_PIDFILE=$AUTOSSH_PIDFILE;export AUTOSSH_PIDFILE
autossh -M29001 -f -N -L7777:127.0.0.1:3306 [email protected]
else
status -p $AUTOSSH_PIDFILE autossh
fi
}
If you call this function, it will created the specified tunnel or if it is up and runnng, then it will spit back the PID.