Linux/Unix vérifier si la connexion VPN est Active/Jusqu'
J'ai un code qui détecte si OpenVPN connexion est en haut ou en bas:
if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
then
echo "VPN up"
else
echo "VPN down"
fi
exit 0
maintenant, je suis en train de ré-écrire le code pour travailler avec PPTP ou IPSEC connexion. J'ai essayé de faire:
if echo 'ifconfig ppp0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
ou même avec ipsec, mais ne fonctionne pas. Est-il un autre moyen de détecter PPTP ou IPSEC connexion?
Que
Il n'est pas étrange d'un code complet est ici:
donc en gros, j'ai besoin de reconnexion VPN une fois...la re-connexion script fonctionne bien mais j'ai du mal avec le "si"
Pour quelqu'un qui ne voit jamais cette question,
echo
utilisation est étrange. Faut-il backticks?Il n'est pas étrange d'un code complet est ici:
if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00" then echo "VPN up" else echo 1 > /usr/syno/etc/synovpnclient/vpnc_connecting synovpnc reconnect --protocol=openvpn --name=XXXXXX fi exit 0
donc en gros, j'ai besoin de reconnexion VPN une fois...la re-connexion script fonctionne bien mais j'ai du mal avec le "si"
Pour quelqu'un qui ne voit jamais cette question,
if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
signifie: vérifier si la chaîne de caractères "ifconfig tun0" contient la chaîne "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00". Un bon exemple serait if ifconfig tun0 | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
(pas d'écho, pas de guillemets simples), ce qui signifie: exécuter ifconfig tun0
puis vérifier pour la chaîne depuis sa sortie.OriginalL'auteur Spyder | 2015-05-05
Vous devez vous connecter pour publier un commentaire.
Le script suivant:
Contenu de sudo crontab:
Contenu de ISPConnectivity.sh script:
OriginalL'auteur labatman
Que
echo
déclaration est erronée. @Détendez-vous dit, les guillemets simples (') doit être backtics (`). Votre code actuel est de l'envoi de la valeur littéraleifconfig ppp0
à grep, ce qui ne veut pas faire quelque chose d'utile.Mais vous n'avez pas réellement besoin de la backtics, soit. Vous pouvez envoyer la sortie de
ifconfig
àgrep
répertoire; à l'aide deecho
ne pas vous obtenir n'importe quoi:OriginalL'auteur larsks
Je suis à la recherche en solution plus flexible, par exemple:
ce sujet? puis-je l'améliorer?
OriginalL'auteur Spyder
ip route table de la liste de 220 si l'adresse Ip affichée -> connexion VPN établie, aucun -> pas de VPN
ou
if [ "0" ==
ifconfig | grep wlan0 | wc -l
]; then echo "PAS de wlan0 n'a pas de VPN"; else echo "OUI wlan0 a VPN"; fiOriginalL'auteur user2909180