mirror of
https://github.com/edu4rdshl/linuxscripts.git
synced 2026-07-18 07:34:45 +00:00
44 lines
1.1 KiB
Bash
Executable file
44 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Script to select a random VPN client from /etc/openvpn/client/ (the default openvpn directory)
|
|
# remember that openvpn profiles in /etc/openvpn/client/ need to be in the format profile.conf
|
|
# Example: hk-04.conf
|
|
|
|
workdir="/etc/openvpn/client/"
|
|
isopenvpn=$(command -v openvpn > /dev/null)
|
|
issystemd=$(command -v systemctl > /dev/null)
|
|
|
|
if [ $UID -ne 0 ]; then
|
|
echo "You need root privileges."
|
|
exit
|
|
fi
|
|
|
|
if [ ! -z $isopenvpn ] || [ ! -z $issystemd ]; then
|
|
echo "OpenVPN or systemd not installed, exiting."
|
|
exit
|
|
fi
|
|
|
|
if [ "$1" == "stop" ]; then
|
|
systemctl stop openvpn-client@*
|
|
exit
|
|
|
|
elif [ "$1" == "start" ]; then
|
|
systemctl stop openvpn-client@*
|
|
if [ -d "$workdir" ]; then
|
|
cd "$workdir"
|
|
vpn=$(shuf -ezn 1 * | xargs -0 -n1)
|
|
if [ -f "$vpn" ]; then
|
|
vpn=$(echo "$vpn" | cut -f1 -d '.')
|
|
systemctl start "openvpn-client@$vpn"
|
|
exit
|
|
else
|
|
echo "$vpn is not a file."
|
|
exit
|
|
fi
|
|
else
|
|
echo "$workdir does not exist, leaving."
|
|
exit
|
|
fi
|
|
else
|
|
echo -e "Usage:\n $0 start - start a random OpenVPN client. \n $0 stop - stop the initialized OpenVPN client."
|
|
exit
|
|
fi
|