View difference between Paste ID: 6Mhx3nqQ and syXSUhFz
SHOW: | | - or go back to the newest paste.
1
#!/bin/bash
2
# VPN-BT-Keep-0.2 201901150500 not validated; Also available at http://paste.debian.net/plain/1060550
3
# This program stops a program when your VPN connection is lost then restarts it after the connection is re-established.
4
# From https://www.debian-fr.org/t/ordonner-a-transmission-de-se-fermer-si-la-connexion-vpn-est-perdue/78326
5
# and https://www.wareziens.net/forum/viewtopic.php?id=36487&p=
6
7
UUID_VPN=00589c54-affc-43bd-b252-fee06ded1a89 # UUID_VPN DE SIMULATION À MODIFIER AVEC LE VOTRE # UUID_VPN OF SIMULATION TO MODIFY WITH YOUR
8
9
# nmcli --pretty connection show --active
10
# une fois sans avoir activé le vpn et une fois avec le vpn actif.
11
# once without having activated the vpn and once with the active vpn.
12
# sélectionnez l'identification uuid correspondante au vpn
13
# select the uuid identification corresponding to the vpn
14
15
function is_vpn_active() {
16
nmcli --terse --fields uuid  connection  show --active | fgrep --quiet $UUID_VPN && echo 1 || echo 0
17
}
18
19
#Attmept a VPN connection until connected
20
function connectVPN()
21
{
22
    while : #If the connection is just started or lost, try to reconnect then break out once connected.
23
    do
24
        connected=$(is_vpn_active) #Store the current state of the VPN connection.
25
        if [ "$connected" = "1" ]; then
26
            echo "connectVPN: vpn up"
27
            echo ""
28
            transmission-gtk &
29
            break
30
        else
31
            echo "connectVPN: vpn down, Attempting VPN connection in 20 seconds."
32
            sleep 20 #Give the VPN time to recover so we don't abuse it with reconnection requests.
33
            echo "nordvpn connect ..." #Retry the VPN : Ligne de connexion au VPN à adapter. VPN connection line to adapt.
34
        fi
35
        done
36
}
37
38
#Monitor the VPN and secure VPN dependancies.
39
connectVPN
40
date
41
while true; do
42
    vpnstring=$(is_vpn_active)    #Define a string to test, 0 = no connection, 1 = connected.
43
    case $vpnstring in
44
    "0")
45
        date
46
        killall transmission-gtk
47
        connectVPN
48
    ;;
49
    "1")
50
        sleep 1
51
    ;;
52
    esac
53
done