From 54b127e8094a1960b6f06b6eb34c17fdcf48be00 Mon Sep 17 00:00:00 2001 From: Bruno21 Date: Tue, 25 Mar 2025 07:56:29 +0100 Subject: [PATCH] bugfix --- urls_check.sh | 26 +++++++++++++------------- validity.sh | 29 +++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/urls_check.sh b/urls_check.sh index 08fb3ea..b1f5019 100755 --- a/urls_check.sh +++ b/urls_check.sh @@ -205,14 +205,14 @@ fi # On efface la liste des urls down -[ -f "./urls_down_list_curl.txt" ] && rm "./urls_down_list_curl.txt" -[ -f "./certificats_outdated.txt" ] && rm "./certificats_outdated.txt" +[ -f "$ScriptWorkDir/urls_down_list_curl.txt" ] && rm "$ScriptWorkDir/urls_down_list_curl.txt" +[ -f "$ScriptWorkDir/certificats_outdated.txt" ] && rm "$ScriptWorkDir/certificats_outdated.txt" check_url() { website=$(echo "$1" | awk -F "\/\/" '{print $2}') response=$(curl --connect-timeout 10 --max-time 10 --retry 3 --retry-delay 0 --retry-max-time 30 --write-out '%{http_code}' --silent --output /dev/null "$1") - + if [ $(grep -w "200\|301\|302\|303\|307" <<< "$response") ];then echo -e "${greenbold}$2. $website is up${reset} ($response)" @@ -221,7 +221,7 @@ check_url() { else echo -e "${redbold}$2. $1 is down${reset} ($response)" - echo "$1 is down ($response)" >> urls_down_list_curl.txt + echo "$1 is down ($response)" >> $ScriptWorkDir/urls_down_list_curl.txt # Affichage et description de l'erreur status_error "$response" @@ -285,11 +285,11 @@ info_certif() { array_names+=("$names") #echo "Domain: $domain" >> certificats_outdated.txt - echo "Names: $names" >> certificats_outdated.txt - echo "Issuer: $issuer" >> certificats_outdated.txt - echo "Date début: $start" >> certificats_outdated.txt - echo "Date fin: $end" >> certificats_outdated.txt - echo "" >> certificats_outdated.txt + echo "Names: $names" >> $ScriptWorkDir/certificats_outdated.txt + echo "Issuer: $issuer" >> $ScriptWorkDir/certificats_outdated.txt + echo "Date début: $start" >> $ScriptWorkDir/certificats_outdated.txt + echo "Date fin: $end" >> $ScriptWorkDir/certificats_outdated.txt + echo "" >> $ScriptWorkDir/certificats_outdated.txt fi fi @@ -317,9 +317,9 @@ done # Affichage des serveurs qui ne répondent pas -if [ -f "./urls_down_list_curl.txt" ]; then - cp "./urls_down_list_curl.txt" urls_down_list_curl.bak - url_down=$(cat "./urls_down_list_curl.txt") +if [ -f "$ScriptWorkDir/urls_down_list_curl.txt" ]; then + cp "$ScriptWorkDir/urls_down_list_curl.txt" $ScriptWorkDir/urls_down_list_curl.bak + url_down=$(cat "$ScriptWorkDir/urls_down_list_curl.txt") if [ "$x" -ne 1 ]; then echo -e "\n${redbold}Url down: ${reset}" @@ -352,7 +352,7 @@ fi if [ -f "./certificats_outdated.txt" ]; then echo -e "\n${redbold}Certificat outdated: ${reset}" - certif_outdated=$(cat "./certificats_outdated.txt") + certif_outdated=$(cat "$ScriptWorkDir/certificats_outdated.txt") echo -e "$certif_outdated\n" if [ "$notif" == "gotify" ];then diff --git a/validity.sh b/validity.sh index 1ea3a88..ed697f5 100755 --- a/validity.sh +++ b/validity.sh @@ -5,7 +5,8 @@ VERSION="v1.0" -red="\033[1;31m" +redbold="\033[1;31m" +red="\033[10;31m" greenbold="\033[1;32m" green="\033[0;32m" yellow="\033[0;33m" @@ -48,13 +49,14 @@ ScriptWorkDir="$(dirname "$ScriptPath")" # /Users/bruno/Documents/Scripts/bashbi ### Domains to check ### #hosts=("domain.com") -hosts=("") -if [ ${#hosts[@]} -eq 0 ]; then +hosts=() +#if [ ${#hosts[@]} -eq 0 ]; then if [ -f "$ScriptWorkDir/validity_domains.txt" ]; then readarray -t hosts < "$ScriptWorkDir/validity_domains.txt" else echo -e "${red}No domain to check !${reset}" fi -fi +#fi + port=443 # Days left before notification nday=15 @@ -98,9 +100,24 @@ send_pushover_notification() { for host in "${hosts[@]}"; do + + url="https://$host" + response=$(curl --connect-timeout 10 --max-time 10 --retry 3 --retry-delay 0 --retry-max-time 30 --write-out '%{http_code}' --silent --output /dev/null "$url") + + if [ $(grep -w "200\|301\|302\|303\|307" <<< "$response") ];then + if command -v showcert >/dev/null 2>&1; then + cert=$(showcert $host) +: << 'COMMENTS2' + error=$(echo "$cert" | grep "Verification error (use -i)") + if [ -n "$error" ]; then + echo -e "${redbold}$error${reset}\n${italic}Trying showcert -i $host${reset}" + cert=$(showcert -i $host) + fi +COMMENTS2 + ip=$(echo "$cert" | grep IP | awk -F": " '{print $2}') names=$(echo "$cert" | grep Names | awk -F": " '{print $2}') issuer=$(echo "$cert" | grep Issuer | awk -F": " '{print $2}') @@ -162,4 +179,8 @@ for host in "${hosts[@]}"; do echo -e "\n" sleep 1 + + else + echo -e "${red}$host is offline !${reset}" + fi done