私は1日中複数のビルドの参照として使用するミラーリポジトリを持っています。毎晩実行され、各リポジトリのリポジトリ同期を実行するcronジョブが必要です。私の問題は、VPNをアクティブにする必要があるリポジトリの一部です。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
Gnomeの nmcli Webサイトから:
$ 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>