Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Tous les dimanches je vois un mail avec le sujet "Backup HC3", je ne l'ouvre pas, et me dit "ok je script a bien fonctionné".

Ce matin, je l'ai ouvert et ait vu qu'il y avait une erreur dans le body (et elle est confirmée dans la HC3 (évidemment).

 

Serait-il possible d'apporter une petite modif au script, que si erreur, le sujet du mail soit "Backup HC3 : ERROR" ?

Ainsi je ne passerais pas à côté d'une erreur indispensable à corriger.

J'ai déjà regardé le script, mais n'y connaissant rien, je n'ai pas trouvé où faire cette petite modification.

Merci

  • Like 1
Posté(e)

comme je suis impatient, j'ai testé avec succès ceci. Il y a juste une ligne à ajouter dans la fonction Display Error.

Voici la fonction complète :

# Function : Display error
function Error {
	if [ -z "$2" ]
	then
		MAIL_SUBJECT="Backup HC3 : ERROR" # jojo 27/10/2024
		echo -e "$1"
		Email "$1"
	else
		echo -e "$1\n\n$2\n"
		Email "$1\n\n$2\n"
	fi
	Notification "$1"
}

 

  • Like 3
  • 3 semaines après...
Posté(e)

Bonjour,

J'ai reçu cette nuit 2 mails à 3h00. Ce n'est pas la première fois, mais ce n'est pas systématique.

De plus, le mail d'erreur n'est pas avec le titre modifié ci-dessous.

Ce n'est vraiment pas gravissime, mais là ça ne peut être corrigé que par un vrai expert (à tout hasard @Lazer ? :rolleyes:)

Voici les mails reçus :


HC3
03:00 (il y a 8 heures)
À moi

Erreur : impossible d'obtenir la version : code de retour HTTP 404

<html>
 <head><title>404 Not Found</title></head>
 <body>
 <center><h1>404 Not Found</h1></center>
 <hr><center>nginx</center>
 </body>
 </html>



HC3
03:00 (il y a 8 heures)
À moi

Sauvegarde Home Center terminée avec succès (backup_HC3-00023450_2024_11_10-03_01_50--.fbi)

 

Posté(e) (modifié)

Parce que ce n'est pas une erreur bloquante, si tu regardes le code source, tu verras qu'après l'envoi du mail d'erreur, il ne stoppe pas l'exécution du code, il continue à la suite.

else
	Error "Erreur : impossible d'obtenir la version : code de retour HTTP ${CODE}" "${JSON}"
fi

 

La seule conséquence, c'est que le nom du fichier de sauvegarde ne comportera pas la version et le type stable/beta, pas vraiment gênant, comme on le constate d'ailleurs dans le 2nd mail que tu as reçu.

On pourrait voir cela comme un message d'avertissement plus que d'erreur

 

Reste que je ne sais pas pourquoi cette erreur est survenue (des services pas complètement redémarrés probablement), et pourquoi ta modification du titre d'email n'a pas eu d'effet sur ce mail.

 

Modifié par Lazer
Posté(e)

merci pour ces explications, le plus important étant que j'ai mes backups.

PS

Il y a 1 heure, Lazer a dit :

si tu regardes le code source,

N'y connaissant rien en scripts UNIX, je ne sais pas analyser le code source (d'ailleurs pourquoi la syntaxe de IF est FI ???)

Posté(e)

Pas besoin de grande compétence de programmation pour constater qu'il n'y pas d'instruction Quit après l'erreur "impossible d'obtenir la version" contrairement à la majorité des autres erreurs.

C'est juste ce que j'ai fait ce matin pour comprendre ce qui s'est passé chez toi.

Tu as réussi à trouver et modifier le titre de l'email, je suis sûr que tu aurais aussi réussi à arriver à la même conclusion pour cette erreur ;)

 

Pour le "fi", c'est une des particularités du langage Shell... chaque langage a sa syntaxe qui lui est propre.

Là ils ont décidé d'inverser les lettres du "if" pour clore la section, tout comme LUA a décidé d'utiliser un "end", l'indentation (tabulations) en Python, ou encore l'accolade dans beaucoup d'autres langages, voire rien du tout (en C/PHP/etc, si une seule instruction après le if, on peut omettre tout élément délimiteur de section)

Bref, rien qu'avec la tabulation de mon script (relativement simple), je pense qu'on comprend facilement que le fi ferme le bloc if/else précédent... oui bon désolé dans l'extrait de 3 lignes de mon message précédent, il manque le début du "if"... il faut aller voir le code source.

Posté(e)

confirmation que je devrais renouveler ma mémoire (elle devient vieille :lol:) j'étais sûr que le if (en début de section) c'était fi ... ton explication est donc pleine de logique ...

 

  • 6 mois après...
Posté(e)

je suis un "fan" des backups.

Le fichier .out est vide chez moi. Normal ?

set -o pipefail; 
"/volume1/ScriptsUnix/backup-hc3-local.sh" 2>&1 | tee -a 
"/volume1/ScriptsUnix/backup-hc3-local.out";

et j'ai forcé une erreur au cas où il ne se rempli que si erreur , mais toujours vide.

Posté(e) (modifié)

Je n'utilise pas cette méthode de lancement.

Mais je viens de tester pour voir

et j'obtiens bien

Début de la procédure de Backup Fibaro Home Center PROD ( Vrs: 3.23 - Henri ) : dimanche 08/06/2025 20:22:46
Sauvegarde avec historique...  et la suite
.

 

Version Henri ... Quelques motifs mineures pour adapter à ma configuration système de mail différent ....

 

N'est ce pas un problème de droit sur le fichier .out ou son répertoire ? 

Est-ce que une commande directe du type : cat UnFichierExsistant 2>&1 | tee -a X.test    fonctionne ?

 

Modifié par henri-allauch
Posté(e)
Il y a 15 heures, henri-allauch a dit :

Mais je viens de tester pour voir

Merci

Il y a 15 heures, henri-allauch a dit :

et j'obtiens bien

normal, c'est une procédure @Lazer (chaque fois que j'vais un soucis, il était lié à l'interface chaise-clavier)

Il y a 15 heures, henri-allauch a dit :

N'est ce pas un problème de droit sur le fichier .out ou son répertoire ? 

Je ne pense pas car le fichier .out est dans le même répertoir que le fichier ?sh, qui est exécuté par root

Il y a 15 heures, henri-allauch a dit :

Est-ce que une commande directe du type : cat UnFichierExsistant 2>&1 | tee -a X.test    fonctionne ?

je n'ai pas d'idée de comment la lancer, ni ce qu'elle est supposée faire. Je regarde.

Posté(e)
Il y a 19 heures, henri-allauch a dit :

cat UnFichierExsistant 2>&1 | tee -a X.test

oui, j'ai créé une tâche root avec

cat /volume1/ScriptsUnix/backup-hc3-local-Copy.out 2>&1 | tee -a /volume1/ScriptsUnix/X.test

et le fichier X.test a bien été créé

 

autre test à faire ?

Posté(e) (modifié)

La commande simule ce que tu es sensé avoir avec le backup mais sans faire le backup. Soit tu as introduit une erreur dans le script initial soit ???  Donc on fait pareil sans le script et on voit le résultat.

 

Tu tapes direct au clavier: cat UnFichierExsistant 2>&1 | tee -a X.test 

      la commande cat va lire un fichier désigné par UnFichierExsistant et son contenu sera affiché sur l'écran ainsi que les erreurs éventuelles. 

      la suite | tee -a X.test : copie cette sortie dans le fichier X.test en mode ajout.

Donc si dans ton fichier UnFichierExsistant il y a : TEST_JOJO tu va retrouver ce même texte dans X.test .

 

C'est ce que fait la commande de lancement  du  script de backup et qui donne les informations a tee pour écrire les résultats et les erreurs  dans le .out

C'est simplement pour voir comment ça se comporte or du script .

Ça ne résoudra pas le PB initial.  

 

 

Résumé et essais      nota : iMac-M3:~ henri$   ça c'est le Promt de ma console Unix

 

iMac-M3:~ henri$ echo TEST_Jojo > UnFichierExistant                     Création du fichier UnFichierExistant contenant TEST_Jojo

iMac-M3:~ henri$ cat UnFichierExistant 2>&1 | tee -a X.test             Lecture du fichier et création de X.test    

TEST_Jojo                                                                                                Ce qui s'affiche c'est le contenu de UnFichierExistant

iMac-M3:~ henri$ cat X.test                                                                   Lecture de X.test

TEST_Jojo                                                                                                 Le test à fonctionné puisqu'on retrouve le contenu de l'action cat UnFichierExistant 2>&  dans X.test (TEST_Jojo )

 

De toutes façons la commande indiquée plus haut fourni par @Lazer   en début de ce POST pour lancer le backup Fonctionne ...QUi en aurait douté ?

 

En fait je ne sais pas si ces explicationst'aident à comprendre ou ça t'embrouille les idées encore plus.

Modifié par henri-allauch
  • Thanks 1
Posté(e)

Nos messages se sont croisé donc ???

SI tu as modifié le script c'est peut être par là que ça se passe  ou vraiment un problème de droit d'écriture ou de création ?

Posté(e) (modifié)
il y a 57 minutes, jojo a dit :
cat /volume1/ScriptsUnix/backup-hc3-local-Copy.out 2>&1 | tee -a /volume1/ScriptsUnix/X.test

et le fichier X.test a bien été créé

 

et ils contiennent la même chose ?


 

 

Modifié par henri-allauch
Posté(e)

autre chose 

essaye de lancer ton backup  set -o pipefail;  "/volume1/ScriptsUnix/backup-hc3-local.sh" 2>&1 | tee -a "/volume1/ScriptsUnix/backup-hc3-local.out";    sans le pipefail ( qui permet d'arrêter la commande à la première erreur dans les commandes avec (Pipe | )  je ne sais pas s'il se comporte pareil sous tous les shell ?

Posté(e)
Il y a 1 heure, henri-allauch a dit :

SI tu as modifié le script c'est peut être par là que ça se passe  ou vraiment un problème de droit d'écriture ou de création ?

j'ai fait des modifs mineures (changer sujet si erreur), mais je vais refaire le test avec le fichier original.

 

Il y a 1 heure, henri-allauch a dit :

et ils contiennent la même chose ?

oui ...

il y a une heure, henri-allauch a dit :

essaye de lancer ton backup  set -o pipefail;  "

toujours la même chose. (merci de tes idées)

 

De toute façon, ce n'est pas critique, car les backups se font, et je reçois bien les notifs par mail

×
×
  • Créer...