sdf_tun_ssh.sh 738 B

12345678910111213141516171819202122232425
  1. #!/bin/sh
  2. ## A script to set up a ssh tunnel for a "local" connection to the sdf ircd and be run with cron_key.sh
  3. # Run in crontab with:
  4. # */10 * * * * /home/demure/projects/personal/scripts/sdf_tun_ssh.sh
  5. LOCAL_PORT="2003"
  6. SERVER="ma.sdf.org"
  7. IRC_HOST="irc.sdf.org"
  8. IRC_PORT="6697"
  9. ## Set command as a var to save time
  10. SSH_COMMAND="ssh -f -N -L ${LOCAL_PORT}:${IRC_HOST}:${IRC_PORT} ${SERVER}"
  11. ## Check how many ssh sessions are running on the port
  12. CHECK="$(pgrep -f "${SSH_COMMAND}" | wc -l)"
  13. ## If no sessions, start one; if more than one, kill them and start a new one.
  14. if [ "${CHECK}" -eq "0" ]; then
  15. ${SSH_COMMAND}
  16. else
  17. if [ "${CHECK}" -gt "1" ]; then
  18. pkill -f "${SSH_COMMAND}"
  19. ${SSH_COMMAND}
  20. fi
  21. fi