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.