성공적인 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 파일의 내용을 삭제합니다.
이것이 누군가에게 도움이 되기를 바랍니다