#!/bin/bash # @ Simple bash script for stopping and starting openvpn connections. # @ Author: Radi Dochev # @ contact: r.dochev@viscomp.bg # @ License: GPL v2 * www.gnu.org/licenses/gpl-2.0.html # @ Futures: restart command and some bug fixes # @ Version: 1 # Please send me some bug reports! # Setcolor variables for output SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_NORMAL="echo -en \\033[0;39m" SET_FIN="echo -e \\r" echo_completed() { $MOVE_TO_COL echo -n "[ " $SETCOLOR_SUCCESS echo -n $"COMPLETED" $SETCOLOR_NORMAL echo -n " ]" $SET_FIN } echo_fail() { $MOVE_TO_COL echo -n "[ " $SETCOLOR_FAILURE echo -n $"FAILED" $SETCOLOR_NORMAL echo -n " ]" $SET_FIN } start_vpn() { if [ "`ps xa|grep openvpn|grep -v grep|wc -l`" = "0" ]; then cd /etc/openvpn/config for x in `ls *.ovpn`; do /usr/bin/gksudo "/usr/sbin/openvpn --config $x --daemon $x.d --log $x.log" #/usr/bin/gksudo "/usr/sbin/openvpn --cd /etc/openvpn --config $x --daemon $x.d --log $x.log" done echo_completed else echo_fail fi } stop_vpn() { if [ "`ps xa|grep openvpn|grep -v grep|wc -l`" != "0" ]; then echo -n "Stopping openvpn service: " /usr/bin/gksudo "killall -15 openvpn" echo_completed else echo -n "Stopping openvpn service: " echo_fail echo -en " Openvpn service is already stopped!" echo -e \\r exit fi } CHECK=`id | awk '{print $1}' | cut -d"(" -f2 | cut -d")" -f1` # This seems to be the hardest way for checking root privileges :) COMMAND="$1" case "$COMMAND" in "start" ) if [ $CHECK == "root" ]; then echo -n "Checking root privilegies: " echo_completed echo -n "Starting Openvpn service: " start_vpn else echo -n "Checking root privilegies: " echo_fail echo -en " Please use: \\033[1;32msudo $0 start \\033[0;39m" echo -e \\r exit fi ;; "stop" ) if [ $CHECK == "root" ]; then echo -n "Checking root privilegies: " echo_completed stop_vpn else echo -n "Checking root privilegies: " echo_fail echo -en " Please use: \\033[1;32msudo $0 stop\\033[0;39m" echo -e \\r exit fi ;; * ) echo "Wrong argument!" echo "Syntax: $0 [ start | stop ]" exit ;; esac