And*_*ius 5 bash shell vpn openvpn openconnect
我有这个脚本:
#!bin/bash
NAME="user"
PIDFILE="openconnect.pid"
CERT="user.crt"
KEY="user.key"
PASS="pass"
HOST="https://example.com"
SCRIPT="/etc/vpnc/vpnc-script"
openconnect -b --script $SCRIPT --pid-file=$PIDFILE -c $CERT -k $KEY --key-password=$PASS --user=$NAME $HOST
Run Code Online (Sandbox Code Playgroud)
它可以工作,但有时如果出现问题(服务器重启或其他一些问题),它会与 VPN 断开连接。我需要再次重新运行脚本。有什么方法可以修改它或将其添加到 cron 作业或其他方式中吗?
注意。当我运行这个脚本时,我需要输入证书密码。因此,考虑到安全性,我想知道为了自动重新连接的目的,我应该在哪里保存该密码?
您可以通过检查其PID来检测 openconnect 是否仍在运行:
pidof openconnect
如果 openconnect 仍然运行,则返回退出值 0,否则返回非零。
您将拥有一个看起来像这样的脚本[未经测试,但应该给您一个提示]:
#!/bin/bash
OPENCONNECT_PID=""
function checkOpenconnect(){
ps -p "${OPENCONNECT_PID}"
# print the status so we can check in the main loop
echo $?
}
function startOpenConnect(){
# start here open connect with your params and grab its pid
openconnect [your params] & OPENCONNECT_PID=$!
}
startOpenConnect
while true
do
# sleep a bit of time
sleep 30
OPENCONNECT_STATUS=$(checkOpenconnect)
[ $OPENCONNECT_STATUS -ne 0 ] && startOpenConnect
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6749 次 |
| 最近记录: |