2 votos

Cron job - necesidad de la secuencia de comandos para iniciar VPN si no se está ejecutando para el trabajo

He espejo repositorios que uso como referencia para varias versiones a lo largo del día. Me gustaría tener un trabajo cron para que se ejecute cada noche y hace un repo sync para cada uno de mis repos. MI problema es que algunos de los repositorios requieren que el VPN sea activo y no quiero salir de la VPN activo, si no estaba ya activo.

Estoy usando Ubuntu 18.04 y he instalado el network-manager-openconnect-gnome y tener mi VPN configurada con credenciales recordado. He NetworkManager y nmcli versión 1.10.6. Puedo iniciar la conexión con

nmcli con up <connection name>

pero no sé cómo determinar el VPN del estado antes de encenderlo.


con la aceptación de la solución, ahora tengo:

#! /bin/bash

connection="<connection name>"

vpn_active=$(nmcli con show --active | grep "${connection}")

if [[ $vpn_active ]] ; then
    echo "VPN is active"
else
    echo "VPN is not active"
    nmcli con up "${connection}"
fi

pushd ~/disc2/repo.cache/

for dir in * ; do

    if [ -d "$dir" ]; then
        cd $dir
        pwd;
        repo sync;
        cd ..
    fi
done

popd

if [[ ! $vpn_active ]] ; then
    echo "stopping vpn"
    nmcli con down "${connection}"
fi

1voto

WinEunuuchs2Unix Puntos 1032

A partir de Gnome nmcli página web:

$ nmcli con show --active
NAME                UUID                                  TYPE             DEVICE  
TELUS1213-5G        a857583c-3f2a-4399-9fc6-3df74b0509f0  802-11-wireless  wlp60s0 
Wired connection 1  f1d049d0-ad20-3201-ac70-5cb8cc06a6e5  802-3-ethernet   enp59s0 

Para probar si una conexión específica es activo uso:

nmcli con show --active <connection_name>

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: