I was used to have a rsync call in my crontab to perform backup from my laptop to my desktop. My idea was to backup my laptop everyday even if I wasn’t at home, so before the time that the rsync ran I had to make sure that I was connected to my home network via OpenVPN and that my desktop was on.

If the day was calm, no problem, but when I was busy at work that meant no backup for that day.

I decided to code my own script to solve this problem.

for the dialogs, I had to install ‘xdialog’

Also, I’m calling another script called ‘vpn’ that I made with expect, it’s used to connect to my OpenVPN server with the passphrase I specify with a parameter.

if $argcsend_user “usage: \n”
send_user “$argv0 password \n”
send_user “”
exit
}

spawn sudo /usr/sbin/openvpn –config /etc/openvpn/openvpn.conf –daemon
expect “Enter Private Key Password:”
send “[lindex $argv 0]\r”
interact

In my router I made an script called ‘wakeup’ that only runs:

Hope you can use it for something, if not, you have a good example of how to use Xdialog, expect and some other things.Todo comenzó cuando tenia configurado un script de rsync en el cron, el cual me permitía hacer backup desde mi laptop a mi desktop. Mi idea era hacer backup diariamente, incluso aquellos dias en los que no estaba en casa. Con este propósito, antes de que mi script se ejecutase tenia que preparar el entorno, iniciar la VPN y asegurarme que mi PC de casa estuviese prendida.

Si el día estaba tranquilo, no había problema, pero si era un día complicado me quedaba sin backup.

Decidí hacer un script para solucionar este problema

Para los diálogos tuve que instalar el programa ‘xdialog’

También estoy utilizando otro script llamado ‘vpn’ que hice con expect. La función de este script es conectarme a mi servidor OpenVPN con la password que le paso como parámetro.

En mi router, hice un script que se llama ‘wakeup’ que solo contiene la siguiente linea:

Donde AA:BB:CC:DD:EE:FF es la MAC address de mi PC de escritorio.

“No soy una persona técnica! que esta haciendo esto?”
Básicamente, esta viendo si mi laptop esta en mi red hogareña. De no estarlo trata de establecer una conexión con mi red hogareña a través de una VPN. Una vez en la red, se fija si mi computadora esta prendida. Si no esta prendida, trata de prenderla por WOL. Cuando todo esta OK, hace un backup diferencial entre mi laptop y mi computadora de casa.

Espero que puedan usar el script para algo, sino, es un buen ejemplo de como usar Xdialog, expect y otras cosillas…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.