成功したOpenVPN接続のUP時間を返す方法を見つけようとしています。
次のコードのさまざまなバリエーションを試しました。
#!/bin/bash
TMP=$(grep 'tun0: link up' /var/log/syslog* | tail -1 | cut -f2- -d':' | sed "s/ "$(uname -n)" kernel:/*/")
WHEN=$(echo "$TMP" | cut -f1 -d '*')
SEC=$(echo "$(date +%s) - $(date -d "$WHEN" +%s)" | bc)
echo "Last link up: $WHEN ($SEC seconds ago)."
ただし、eth0接続の稼働時間のみを返します。私は何が間違っていましたか?
ベストアンサー1
さて、スクリプトを追加せずにこれを行う方法が見つかりませんでしたが、これが私ができる最も簡単な方法です。
*.confファイルに次の行を追加して開始します(up.shおよびdown.shファイルに755権限があることを確認してください)。
script-security 2
# Run when Connection is up
up /etc/openvpn/up.sh
# Run when connection is down
down /etc/openvpn/down.sh
up.sh ファイルの内容は次のとおりです。
#!/bin/sh
echo $(date) > ovpnTime.txt
down.shファイルの内容は次のとおりです。
#!/bin/sh
cat /dev/null > ovpnTime.txt
up.shスクリプトは、次のように接続日付文字列をovpnTime.txtに追加します。
Fri Nov 28 03:18:46 EET 2014
その後、日付を現在と比較して、違いの「稼働時間」を得ることができます。
down.shスクリプトは、接続が閉じるように設定されている場合、ovpnTime.txtファイルの内容を削除します。
これが誰かに役立つことを願っています