Suprression du code inutile. Réindentation.
This commit is contained in:
parent
bdd1ac0069
commit
fd12773ec8
|
@ -21,23 +21,23 @@ results=$(sqlite3 "$database" "$query")
|
|||
|
||||
|
||||
update_next_check() {
|
||||
local id="$1"
|
||||
local id="$1"
|
||||
|
||||
# Récupérer la valeur d'intervalle à partir de la base de données SQLite
|
||||
interval=$(sqlite3 "$database" "SELECT interval FROM url_check WHERE id = $id;")
|
||||
# Récupérer la valeur d'intervalle à partir de la base de données SQLite
|
||||
interval=$(sqlite3 "$database" "SELECT interval FROM url_check WHERE id = $id;")
|
||||
|
||||
# Obtenir le timestamp (nombre de secondes depuis l'époque UNIX) pour la date actuelle
|
||||
current_timestamp=$(date +"%s")
|
||||
# Obtenir le timestamp (nombre de secondes depuis l'époque UNIX) pour la date actuelle
|
||||
current_timestamp=$(date +"%s")
|
||||
|
||||
# Calculer le nouveau timestamp en ajoutant l'intervalle (en secondes) à la date actuelle
|
||||
new_timestamp=$((current_timestamp + interval))
|
||||
# Calculer le nouveau timestamp en ajoutant l'intervalle (en secondes) à la date actuelle
|
||||
new_timestamp=$((current_timestamp + interval))
|
||||
|
||||
# Convertir le nouveau timestamp en format de date "YYYY-MM-DD HH:MM:SS"
|
||||
next_check=$(date -d "@$new_timestamp" +"%Y-%m-%d %H:%M:%S")
|
||||
# Convertir le nouveau timestamp en format de date "YYYY-MM-DD HH:MM:SS"
|
||||
next_check=$(date -d "@$new_timestamp" +"%Y-%m-%d %H:%M:%S")
|
||||
|
||||
# Mettre à jour la table url_check avec la nouvelle valeur de next_check pour l'ID spécifique
|
||||
echo " ✨ Mise à jour du next check à $next_check"
|
||||
sqlite3 "$database" "UPDATE url_check SET next_check = '$next_check' WHERE id = $id;"
|
||||
# Mettre à jour la table url_check avec la nouvelle valeur de next_check pour l'ID spécifique
|
||||
echo " ✨ Mise à jour du next check à $next_check"
|
||||
sqlite3 "$database" "UPDATE url_check SET next_check = '$next_check' WHERE id = $id;"
|
||||
|
||||
}
|
||||
|
||||
|
@ -45,91 +45,87 @@ update_next_check() {
|
|||
|
||||
|
||||
check_status_200() {
|
||||
local id="$1"
|
||||
query="SELECT url FROM url_check WHERE id=$id;"
|
||||
local id="$1"
|
||||
query="SELECT url FROM url_check WHERE id=$id;"
|
||||
|
||||
# Exécution de la commande SQLite et récupération du résultat dans la variable "result"
|
||||
results=$(sqlite3 "$database" "$query")
|
||||
# Exécution de la commande SQLite et récupération du résultat dans la variable "result"
|
||||
results=$(sqlite3 "$database" "$query")
|
||||
|
||||
# Vérifier si le résultat n'est pas vide
|
||||
if [ -n "$results" ]; then
|
||||
# Parcourir les résultats ligne par ligne et afficher chaque enregistrement
|
||||
while IFS='|' read -r url; do
|
||||
# Vérifier si le résultat n'est pas vide
|
||||
if [ -n "$results" ]; then
|
||||
# Parcourir les résultats ligne par ligne et afficher chaque enregistrement
|
||||
while IFS='|' read -r url; do
|
||||
|
||||
# Effectuer la requête HTTP GET avec curl et stocker le résultat dans une variable
|
||||
response=$(timeout 1 curl -A "$userAgent" -s -o /dev/null -w "%{http_code}" "$url")
|
||||
echo " 🎯 Reponse http : $response"
|
||||
# Effectuer la requête HTTP GET avec curl et stocker le résultat dans une variable
|
||||
response=$(timeout 1 curl -A "$userAgent" -s -o /dev/null -w "%{http_code}" "$url")
|
||||
echo " 🎯 Reponse http : $response"
|
||||
|
||||
# Vérifier si le code de statut existe déjà dans la table log_check_url
|
||||
query="SELECT COUNT(*) FROM log_check_url WHERE id_url = $id AND value = $response AND label='http_code'"
|
||||
query+=" AND datetime = (SELECT MAX(datetime) FROM log_check_url WHERE id_url = $id AND label='http_code');"
|
||||
exists=$(sqlite3 "$database" "$query")
|
||||
if [ -n "$exists" ] && [ "$exists" -eq 0 ]; then
|
||||
echo " ✨ C'est un nouveau status, je l'inscris dans les logs"
|
||||
echo " Status $response pour l'url $url" | mail -s " ✨ Nouveau status pour le site $url" "$email"
|
||||
# Insérer le nouveau statut avec le timestamp actuel dans la table log_check_url
|
||||
current_timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
sqlite3 "$database" "INSERT INTO log_check_url (id_url, label, value, datetime) VALUES ($id, 'http_code', $response, '$current_timestamp');"
|
||||
fi
|
||||
# Vérifier si le code de statut existe déjà dans la table log_check_url
|
||||
query="SELECT COUNT(*) FROM log_check_url WHERE id_url = $id AND value = $response AND label='http_code'"
|
||||
query+=" AND datetime = (SELECT MAX(datetime) FROM log_check_url WHERE id_url = $id AND label='http_code');"
|
||||
exists=$(sqlite3 "$database" "$query")
|
||||
if [ -n "$exists" ] && [ "$exists" -eq 0 ]; then
|
||||
echo " ✨ C'est un nouveau status, je l'inscris dans les logs"
|
||||
echo " Status $response pour l'url $url" | mail -s " ✨ Nouveau status pour le site $url" "$email"
|
||||
# Insérer le nouveau statut avec le timestamp actuel dans la table log_check_url
|
||||
current_timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
sqlite3 "$database" "INSERT INTO log_check_url (id_url, label, value, datetime) VALUES ($id, 'http_code', $response, '$current_timestamp');"
|
||||
fi
|
||||
|
||||
done <<< "$results"
|
||||
else
|
||||
echo " 🚫 Aucun résultat trouvé."
|
||||
fi
|
||||
done <<< "$results"
|
||||
else
|
||||
echo " 🚫 Aucun résultat trouvé."
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
check_content(){
|
||||
local id="$1"
|
||||
query="SELECT url FROM url_check WHERE id=$id;"
|
||||
local id="$1"
|
||||
query="SELECT url FROM url_check WHERE id=$id;"
|
||||
|
||||
# Exécution de la commande SQLite et récupération du résultat dans la variable "results"
|
||||
results=$(sqlite3 "$database" "$query")
|
||||
# Exécution de la commande SQLite et récupération du résultat dans la variable "results"
|
||||
results=$(sqlite3 "$database" "$query")
|
||||
|
||||
# Vérifier si le résultat n'est pas vide
|
||||
if [ -n "$results" ]; then
|
||||
# Parcourir les résultats ligne par ligne et afficher chaque enregistrement
|
||||
while IFS='|' read -r url; do
|
||||
# Vérifier si le résultat n'est pas vide
|
||||
if [ -n "$results" ]; then
|
||||
# Parcourir les résultats ligne par ligne et afficher chaque enregistrement
|
||||
while IFS='|' read -r url; do
|
||||
# Traitement avec 'string_check'
|
||||
query="SELECT string_check FROM url_check WHERE id=$id;"
|
||||
# Exécution de la commande SQLite et récupération du résultat dans la variable "string_check_result"
|
||||
string_check_result=$(sqlite3 "$database" "$query")
|
||||
|
||||
# Vérifier si string_check_result n'est pas vide
|
||||
if [ -n "$string_check_result" ]; then
|
||||
# Récupérer le contenu HTML
|
||||
response=$(curl -A "$userAgent" -s -L "$url" | bash -c "$string_check_result")
|
||||
|
||||
# Si la variable n'est pas vide, attribuer la valeur à la variable "response"
|
||||
response_sha1=$(echo -n ${response} | sha1sum | awk '{print $1}')
|
||||
|
||||
# Traitement avec 'string_check'
|
||||
query="SELECT string_check FROM url_check WHERE id=$id;"
|
||||
# Exécution de la commande SQLite et récupération du résultat dans la variable "string_check_result"
|
||||
string_check_result=$(sqlite3 "$database" "$query")
|
||||
|
||||
# Vérifier si string_check_result n'est pas vide
|
||||
if [ -n "$string_check_result" ]; then
|
||||
# Récupérer le contenu HTML
|
||||
response=$(curl -A "$userAgent" -s -L "$url" | bash -c "$string_check_result")
|
||||
|
||||
# Si la variable n'est pas vide, attribuer la valeur à la variable "response"
|
||||
response_sha1=$(echo -n ${response} | sha1sum | awk '{print $1}')
|
||||
|
||||
# Vérifier si le code de statut existe déjà dans la table log_check_url
|
||||
echo "Vérification du contenu..."
|
||||
query="SELECT COUNT(*) FROM log_check_url WHERE id_url = $id AND value = '$response_sha1' AND label='html_content_sha1'"
|
||||
query+=" AND datetime = (SELECT MAX(datetime) FROM log_check_url WHERE id_url = $id AND label='html_content_sha1');"
|
||||
exists=$(sqlite3 "$database" "$query")
|
||||
if [ "$exists" -eq 0 ]; then
|
||||
echo " ✨ C'est du nouveau contenu, je l'inscris dans les logs"
|
||||
echo -e " Nouveau contenu pour l'url $url\n\n\n ${response:0:1024}" | mail -s " ✨ Nouveau contenu pour le site ${url:0:64}" "$email"
|
||||
# Insérer le nouveau statut avec le timestamp actuel dans la table log_check_url
|
||||
current_timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
response64=$(echo -n ${response} | base64)
|
||||
sqlite3 "$database" "INSERT INTO log_check_url (id_url, label, value, datetime) VALUES ($id, 'html_content_sha1', '$response_sha1', '$current_timestamp');"
|
||||
sqlite3 "$database" "INSERT INTO log_check_url (id_url, label, value, datetime) VALUES ($id, 'html_content', '${response64}', '$current_timestamp');"
|
||||
echo " ...le nouveau contenu est dans la base."
|
||||
# Vérifier si le code de statut existe déjà dans la table log_check_url
|
||||
echo "Vérification du contenu..."
|
||||
query="SELECT COUNT(*) FROM log_check_url WHERE id_url = $id AND value = '$response_sha1' AND label='html_content_sha1'"
|
||||
query+=" AND datetime = (SELECT MAX(datetime) FROM log_check_url WHERE id_url = $id AND label='html_content_sha1');"
|
||||
exists=$(sqlite3 "$database" "$query")
|
||||
if [ "$exists" -eq 0 ]; then
|
||||
echo " ✨ C'est du nouveau contenu, je l'inscris dans les logs"
|
||||
echo -e " Nouveau contenu pour l'url $url\n\n\n ${response:0:1024}" | mail -s " ✨ Nouveau contenu pour le site ${url:0:64}" "$email"
|
||||
# Insérer le nouveau statut avec le timestamp actuel dans la table log_check_url
|
||||
current_timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
response64=$(echo -n ${response} | base64)
|
||||
sqlite3 "$database" "INSERT INTO log_check_url (id_url, label, value, datetime) VALUES ($id, 'html_content_sha1', '$response_sha1', '$current_timestamp');"
|
||||
sqlite3 "$database" "INSERT INTO log_check_url (id_url, label, value, datetime) VALUES ($id, 'html_content', '${response64}', '$current_timestamp');"
|
||||
echo " ...le nouveau contenu est dans la base."
|
||||
else
|
||||
echo " ...rien n'a changé."
|
||||
fi
|
||||
fi
|
||||
done <<< "$results"
|
||||
else
|
||||
echo " ...rien n'a changé."
|
||||
fi
|
||||
fi
|
||||
|
||||
done <<< "$results"
|
||||
else
|
||||
echo " 🚫 Aucun résultat trouvé."
|
||||
fi
|
||||
echo " 🚫 Aucun résultat trouvé."
|
||||
fi
|
||||
|
||||
|
||||
}
|
||||
|
@ -137,44 +133,27 @@ check_content(){
|
|||
|
||||
# Fonction pour tester le domaine avec le port spécifié
|
||||
check_domain_url() {
|
||||
local id="$1"
|
||||
local id="$1"
|
||||
|
||||
# Vérifier que 'next_check' soit inférieur ou égal à l'heure actuel sinon arrêter
|
||||
# ou si next_check est null alors bifurquer sur initCheck
|
||||
|
||||
# Vérifier le statut 200.
|
||||
check_status_200 "$id"
|
||||
|
||||
# Récupérer le contenu
|
||||
# Si il est différent de ce qu'il y a de stocké alors
|
||||
# loguer le nouveau, alerter et arrêter.
|
||||
|
||||
|
||||
|
||||
code_retour=11
|
||||
# Si le nombre de jours restants est inférieur à 10
|
||||
if [ "$code_retour" -eq "-1" ]; then
|
||||
echo " ⚠️ Impossible de tester le $domain:$port."
|
||||
echo " ⚠️ Impossible de tester le $domain:$port." | mail -s " ⚠️ [ALERTE] Impossible de tester le $domain:$port" "$email"
|
||||
elif [ "$code_retour" -lt "10" ]; then
|
||||
echo " ⚠️ Le certificat de $domain:$port est proche de son expiration."
|
||||
echo "Le certificat de $domain:$port est proche de son expiration. Il reste $code_retour jour(s) avant son expiration" | mail -s " ⚠️ [ALERTE] Impossible de tester le $domain:$port" "$email"
|
||||
fi
|
||||
# Vérifier que 'next_check' soit inférieur ou égal à l'heure actuel sinon arrêter
|
||||
# ou si next_check est null alors bifurquer sur initCheck
|
||||
|
||||
# Vérifier le statut 200.
|
||||
check_status_200 "$id"
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Vérifier si le résultat n'est pas vide
|
||||
if [ -n "$results" ]; then
|
||||
# Parcourir les résultats ligne par ligne et afficher chaque enregistrement
|
||||
while IFS='|' read -r id url; do
|
||||
echo -e "\n\n -- $id - URL testée : $url"
|
||||
check_domain_url "$id"
|
||||
update_next_check "$id"
|
||||
check_content "$id"
|
||||
done <<< "$results"
|
||||
# Parcourir les résultats ligne par ligne et afficher chaque enregistrement
|
||||
while IFS='|' read -r id url; do
|
||||
echo -e "\n\n -- $id - URL testée : $url"
|
||||
check_domain_url "$id"
|
||||
update_next_check "$id"
|
||||
check_content "$id"
|
||||
done <<< "$results"
|
||||
else
|
||||
echo "Aucun résultat trouvé."
|
||||
echo "Aucun résultat trouvé."
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue