我有这个脚本:
#!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
它可以工作,但有时如果出现问题(重启服务器或其他一些问题),它会与VPN断开连接。我需要再次重新运行脚本。有没有什么方法可以修改它或以cron作业或其他方式添加它?
注意即可。当我运行此脚本时,我需要输入证书密码。所以考虑到安全性,我想知道我应该在哪里保留密码以进行自动连接?
答案 0 :(得分:3)
您可以通过检查 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