linux用壹下方法:
#!/bin/bash
#File: openvpn_turn
#Auth: Robin
#Date: 2013/01/17 10-30-10
#Desc: Start/stop openvpn client
#Vers: 1.0
#
# openvpn -s--> stop openvpn client
# openvpn -r--> start openvpn client
#配置文件所在目錄
CONF_DIR="/etc/openvpn"
#配置文件
CONF_FILE="client.conf"
#存放用戶名和密碼,格式如下
# user_name
#password
AUTH_FILE="auth"
LOG_FILE="/tmp/openvpn.log"
PID_FILE="/tmp/openvpn.pid"
functiondo_success {
ps -ef|grep openvpn|grep -v grep|awk'{print $2}'>> $PID_FILE
rm $LOG_FILE
echo -e"Start OPENVPN\033[32msuccessfully\033[0m!"
exit 0
}
functiondo_fail {
echo -e"Start OPENVPN \033[41mfailure\033[0m!"
echo"Maybe you can get something useful from $LOG_FILE"
exit 1
}
functionif_run {
if [ -e $PID_FILE ];then
return0
else
return1
fi
}
functionstart_openvpn {
if_run
if [ $? -eq 0 ];then
ps -ef|grep'\'|grep -v grep &> /dev/null
if [ $? -eq 0 ];then
echo -e"OPENVPN is \033[32malready running\033[0m!!!"
exit 1
else
rm $PID_FILE
fi
fi
if [ -e $LOG_FILE ];then
echo > $LOG_FILE
fi
cd $CONF_DIR
sudo openvpn--config $CONF_FILE --auth-user-pass $AUTH_FILE &> $LOG_FILE &
echo -e"\033[33mStarting\033[0m OPENVPN..."
sleep 5
cat $LOG_FILE |grep"Sequence Completed"2> /dev/null&& do_success || do_fail
}
functionstop_openvpn {
if_run
if [ $? -eq 1 ];then
echo"OPENVPN is not running!"
exit 1
fi
foriin`ps -ef|grep'\'|grep -v grep|awk'{print $2}'`;do
sudo kill -9 $i
done
rm $PID_FILE
echo -e"OPENVPN is already \033[41mstop\033[0m."
}
while getopts sr SW;do
case$SWin
s)
stop_openvpn
break
;;
r)
start_openvpn
break
;;
)echo"openvpn_turn [s|r]"
esac
done