在部署了定时的抽数计划后,发现有时候V\P\N会断开导致抽数失败,因此结合了网上的脚本,修改了一下。
在每个节点上配置了v\p\n-keeper脚本,由主节点上的v\p\n-on脚本启动。
v\p\n-keeper
原理是,每20秒进行一次ping结果的轮询,$?代表前一个指令的返回结果。如果返回是0无异常,则不处理。如果返回有异常,则重启xl2tpd并重新添加v\p\n设定,并打印ifconfig。
#!/bin/bash
while true
do
ping -c 3 -I ppp0 192.168.200.64 >/dev/null
if [ $? -eq 0 ];then
echo "v\p\n is connected"
sleep 20
else
echo "ppp0 is connecting"
systemctl start xl2tpd
sleep 5
sh -c 'echo "c dsdv\p\n" > /var/run/xl2tpd/l2tp-control'
sleep 5
route add -host 192.168.200.64 dev ppp0
ifconfig
sleep 10
fi
sleep 20
donev\p\n-on
在后台启动全部的v\p\n-keeper,将它的结果和异常都导入/dev/null(黑洞)中。
#!/bin/bash
for i in ljw1 ljw2 ljw3
do
echo "----$i----"
ssh $i "nohup /root/bin/v\p\n-keeper >/dev/null 2>&1 &"
done