Como retornar Uptime de conexão OpenVPN bem sucedida?

1

Estou tentando descobrir como retornar o tempo de inicialização de uma conexão OpenVPN bem-sucedida.

Eu tentei diferentes variantes do código a seguir:

#!/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)."

mas está apenas retornando o tempo de atividade da conexão eth0. O que estou fazendo errado?

    
por RobertH 24.11.2014 / 15:37

1 resposta

0

Bem, não encontrei uma maneira de fazer isso sem adicionar scripts extras, mas essa é a maneira mais fácil de fazer isso.

Primeiro adicione essas linhas ao seu arquivo * .conf (certifique-se de que os arquivos up.sh e down.sh tenham 755 permissões):

script-security 2
# Run when Connection is up
up /etc/openvpn/up.sh
# Run when connection is down
down /etc/openvpn/down.sh

aqui está o conteúdo do arquivo up.sh:

#!/bin/sh
echo $(date) > ovpnTime.txt

aqui está o conteúdo do arquivo down.sh:

#!/bin/sh
cat /dev/null > ovpnTime.txt

O script up.sh adicionará a string de data de conexão ao ovpnTime.txt, que se parece com isto:

Fri Nov 28 03:18:46 EET 2014

E então você pode comparar a data até agora para obter a diferença que é "Uptime".

O script down.sh simplesmente exclui o conteúdo do arquivo ovpnTime.txt quando a conexão está desativada.

Espero que isso seja útil para alguém

    
por 28.11.2014 / 02:30