20160626

conectar vpnc usando zenity

Para conectarme al trabajo empleo varios perfiles para vpnc, normalmente lo ejecuto por línea de comandos pero me puse a jugar un poco con zenity

Cuando se ejecuta el script el proceso valida si existe una instancia corriendo de vpnc, en caso de no existir pregunta con que perfil se quiere conectar.


Tras seleccionar el perfil, solicita la contraseña para poder conectar con la vpn.


En la siguiente ventana muestra el resultado de la conexión.


Si se presenta un error en la conexión lanza una terminal xterm para validar manualmente.

En caso de ejecutar el script y este corriendo una instancia de vpnc pregunta si se quiere detener


Para desconectar solicita la contraseña.


Y notifica el resultado.


El código se encuentra en https://github.com/petrohs/listaVPN

  BASE="/tmp/listaVPN/perfiles";  
  REGISTRO=`ps -fea | grep vpnc | grep -v grep | awk '{print $9}'`  
  if [ -z "${REGISTRO}" ]  
   then   
    cd $BASE   
    PERFIL=`ls -1 | zenity --list --title="VPNs" --text="No hay VPN en ejecución\n¿Quieres conectar con un perfil?" --column Perfiles 2>/dev/null`  
    if [ -n "${PERFIL}" ]  
     then   
      gksudo -m "Ejecutar 'vpnc-connect $PERFIL'" "vpnc-connect ${BASE}/${PERFIL}" >/tmp/logVPNohs  
      zenity --text-info --title "Resultado de la conexión" --filename=/tmp/logVPNohs 2>/dev/null  
     fi  
   else   
    zenity --question --title="VPNs" --text="Esta conectado con perfil `basename $REGISTRO`\n¿Quiere detenerlo?" 2>/dev/null  
    if [ $? -eq 0 ]  
     then   
      gksudo -m "Ejecutar 'vpnc-disconnect $PERFIL'" "vpnc-disconnect" >/tmp/logVPNohs  
      zenity --text-info --title "Resultado de la desconexión" --filename=/tmp/logVPNohs 2>/dev/null  
     fi  
   fi