要测试OpenVPN隧道设置,我需要在尝试发送之前检测新启动的OpenVPN守护程序何时建立了隧道(或尝试并失败这样做)隧道上的东西。
答案 0 :(得分:5)
基于timeout tail
的优秀方式:
ssh hostname '
sleep 5 &
timerPID=$!;
tail -n0 -F --pid=$timerPID /var/log/messages | grep openvpn | while read -r line;
do
if echo "$line" | grep -qF -e "Initialization Sequence Completed" -e "Connection refused";
then
kill $timerPID;
break;
fi;
done &
/etc/init.d/openvpnA start &
wait $timerPID'
那是:
openvpn
的异步日志行,直到计时器终止
它似乎有用,但是对OpenVPN不熟悉我不确定这是否是检测连接状态的正确方法。由于我是唯一一个使用该机器的人,我认为由于早期的流程启动而导致grep
成功的计时问题的可能性可以忽略。但我猜测只有熟悉OpenVPN代码的人才能真正回答这个问题:目前的测试是否足以确定连接是成功还是被拒绝?