Updated listOVPN to Include Expiration Dates

This commit is contained in:
Swamy Goundar 2020-03-28 19:36:55 -07:00
parent f045e3935d
commit c28448b94a

View file

@ -1,27 +1,31 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PiVPN: list clients script # PiVPN: list clients script
# Updated Script to include Expiration Dates and Clean up Escape Seq -- psgoundar
INDEX="/etc/openvpn/easy-rsa/pki/index.txt" INDEX="/etc/openvpn/easy-rsa/pki/index.txt"
printf "\n" printf "\\n"
if [ ! -f "${INDEX}" ]; then if [ ! -f "${INDEX}" ]; then
echo "The file: $INDEX was not found!" echo "The file: $INDEX was not found!"
exit 1 exit 1
fi fi
printf ": NOTE : The first entry should always be your valid server!\n" printf ": NOTE : The first entry should always be your valid server!\n"
printf "\n" printf "\\n"
printf "\e[1m::: Certificate Status List :::\e[0m\n" printf "\\e[1m::: Certificate Status List :::\\e[0m\\n"
printf " ::\e[4m Status \e[0m||\e[4m Name \e[0m:: \n" printf "\\e[4mStatus\\e[0m :: \\e[4mName\\e[0m\\e[0m :: \\e[4mExpiration \\e[0m\\n"
while read -r line || [ -n "$line" ]; do while read -r line || [ -n "$line" ]; do
STATUS=$(echo "$line" | awk '{print $1}') STATUS=$(echo "$line" | awk '{print $1}')
NAME=$(echo "$line" | sed -e 's:.*/CN=::') NAME=$(echo "$line" | awk '{print $5}' | awk -F= '{print $2}')
EXPD=$(echo "$line" | awk '{if (length($2) == 15) print $2; else print "20"$2}' | cut -b 1-8 | date +"%b %d %Y" -f -)
if [ "${STATUS}" == "V" ]; then if [ "${STATUS}" == "V" ]; then
printf " Valid :: %s\n" "$NAME" printf " Valid :: %s :: %s\\n" "$NAME" "$EXPD"
elif [ "${STATUS}" == "R" ]; then elif [ "${STATUS}" == "R" ]; then
printf " Revoked :: %s\n" "$NAME" printf " Revoked :: %s :: %s\\n" "$NAME" "$EXPD"
else else
printf " Unknown :: %s\n" "$NAME" printf " Unknown :: %s :: %s\\n" "$NAME" "$EXPD"
fi fi
done <${INDEX}
printf "\n" done <${INDEX} | column -t
printf "\\n"