Cron job - precisa de script para iniciar a VPN se ainda não estiver em execução no job

2

Eu tenho repos de espelho que eu uso como referência para várias construções ao longo do dia. Eu gostaria de ter um cron job que funcione todas as noites e faça um repo sync para cada um dos meus repositórios. Meu problema é que alguns dos repos exigem que a VPN esteja ativa - e eu não quero deixar a VPN ativa se ela ainda não estiver ativa.

Estou usando o Ubuntu 18.04 e instalei o network-manager-openconnect-gnome e tenho minha VPN configurada com as credenciais lembradas. Eu tenho o NetworkManager e a nmcli versão 1.10.6. Eu posso começar a conexão com

nmcli con up <connection name>

mas eu não sei como determinar o estado da VPN antes de ligá-lo.

com a solução aceita, agora tenho:

#! /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
    
por Eric 14.04.2018 / 20:45

1 resposta

1

Do site nmcli do 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 

Para testar se uma conexão específica está ativa, use:

nmcli con show --active <connection_name>
    
por WinEunuuchs2Unix 14.04.2018 / 21:07