我在专用服务器上运行 OpenVPN 客户端,将服务器连接到专用网络。上周,该服务(即 OpenVPN)自行断开连接,直到客户开始给我们打电话,我们才意识到。我不知道它断开连接的原因,现在我想在 OpenVPN 断开连接时立即设置电子邮件警报。我该怎么做?有人可以帮忙吗?
顺便说一下,服务器运行的是 CentOS 6.8
谢谢。
答案1
我已经通过以下三个步骤成功建立了一个
跟随这或者找到自己的指南来配置电子邮件通知脚本
打开
/etc/openvpn/server.conf
并添加以下行script-security 2 client-disconnect /path/to/script
最后
chmod 755 /path/to/script
编辑:抱歉,我误读了您的问题。将以下两行添加到client.conf
。此方法比 cronjob 更可取,因为它几乎是即时的,并且不会向您发送大量邮件
script-security 2
down /path/to/script
答案2
我设法编写了一个简单的脚本来检查服务是否正在运行,如果没有,则重新启动服务并发送电子邮件。以下是简单的代码
文件名checkprocess.sh
#!/bin/bash
# timestamp
ts=`date +%m-%d-%Y_%H:%M:%S`
if pgrep "openvpn" > /dev/null
then
echo "$ts: OpenVPN running..." >> /etc/openvpn/myscript/processcheck.log
else
echo "$ts: openvpn not running, restarting..." >> /etc/openvpn/myscript/processcheck.log
/etc/init.d/openvpn start > /dev/null >> /etc/openvpn/myscript/processcheck.log
if pgrep "openvpn" > /dev/null
then
echo "$ts: openvpn started OK..." >> /etc/openvpn/myscript/processcheck.log
echo "OpenVPN service went down, the service has been restarted." | mail -s "OpenVPN went down" [email protected]
else
echo "$ts: openvpn not started..." >> /etc/openvpn/myscript/processcheck.log
echo "OpenVPN service is down, the server is trying to restart the service." | mail -s "OpenVPN is down" [email protected]
fi
fi
把这个文件放进去/etc/openvpn/myscript
并编辑 cronjob
#crontab -e
添加以下行以每 5 分钟运行一次脚本
*/5 * * * * /etc/openvpn/myscript/checkprocess.sh