Cron job - нужен скрипт для запуска VPN, если он еще не запущен для работы
У меня есть зеркальные репозитории, которые я использую в качестве справки для нескольких сборок в течение дня. Я хотел бы иметь работу cron, которая выполняется каждую ночь и выполняет синхронизацию репо для каждого из моих репо. Моя проблема в том, что некоторые репозитории требуют, чтобы VPN был активным, и я не хочу оставлять VPN активным, если он еще не активен.
Я использую Ubuntu 18.04, и я установил network-manager-openconnect-gnome и мне настроили VPN с учетными данными. У меня есть NetworkManager и nmcli версии 1.10.6. Я могу начать соединение с
nmcli con up <connection name>
но я не знаю, как определить состояние VPN, прежде чем включить его.
с принятым решением у меня теперь есть:
#! /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
1 ответ
С сайта Gnome's nmcli:
$ 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
Чтобы проверить, является ли конкретное соединение активным, используйте:
nmcli con show --active <connection_name>