web-dev-qa-db-fra.com

Cron job - besoin d'un script pour démarrer VPN s'il n'est pas déjà en cours d'exécution pour le job

J'ai des prises en pension miroir que j'utilise comme référence pour plusieurs constructions tout au long de la journée. Je souhaite un travail cron qui s'exécute toutes les nuits et effectue une synchronisation des dépôts pour chacun de mes dépôts. Mon problème est que certaines des pensions exigent que le VPN soit actif - et je ne veux pas laisser le VPN actif s'il ne l'était pas déjà.

J'utilise Ubuntu 18.04 et j'ai installé network-manager-openconnect-gnome et mon VPN est configuré avec les informations d'identification conservées. J'ai NetworkManager et nmcli version 1.10.6. Je peux commencer la connexion avec

nmcli con up <connection name>

mais je ne sais pas comment déterminer l'état du VPN avant de l'activer.


avec la solution acceptée, j'ai maintenant:

#! /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
2
Eric

Depuis le site nmcli de Gnome:

$ 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 

Pour tester si une connexion spécifique est active, utilisez:

nmcli con show --active <connection_name>
1
WinEunuuchs2Unix