jojo Posté(e) le 27 octobre 2024 Signaler Posté(e) le 27 octobre 2024 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 1
jojo Posté(e) le 27 octobre 2024 Signaler Posté(e) le 27 octobre 2024 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" } 3
fredokl Posté(e) le 27 octobre 2024 Signaler Posté(e) le 27 octobre 2024 Bonne idée @jojo. Merci pour cette petite mise à jour.
jojo Posté(e) le 17 novembre 2024 Signaler Posté(e) le 17 novembre 2024 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 ? ) 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)
Lazer Posté(e) le 17 novembre 2024 Auteur Signaler Posté(e) le 17 novembre 2024 (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é le 17 novembre 2024 par Lazer
jojo Posté(e) le 17 novembre 2024 Signaler Posté(e) le 17 novembre 2024 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 ???)
Lazer Posté(e) le 17 novembre 2024 Auteur Signaler Posté(e) le 17 novembre 2024 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.
jojo Posté(e) le 17 novembre 2024 Signaler Posté(e) le 17 novembre 2024 confirmation que je devrais renouveler ma mémoire (elle devient vieille ) j'étais sûr que le if (en début de section) c'était fi ... ton explication est donc pleine de logique ...
jojo Posté(e) le 8 juin Signaler Posté(e) le 8 juin 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.
henri-allauch Posté(e) le 8 juin Signaler Posté(e) le 8 juin (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é le 8 juin par henri-allauch
jojo Posté(e) le 9 juin Signaler Posté(e) le 9 juin 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.
jojo Posté(e) le 9 juin Signaler Posté(e) le 9 juin 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 ?
henri-allauch Posté(e) le 9 juin Signaler Posté(e) le 9 juin (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é le 9 juin par henri-allauch 1
henri-allauch Posté(e) le 9 juin Signaler Posté(e) le 9 juin 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 ?
henri-allauch Posté(e) le 9 juin Signaler Posté(e) le 9 juin (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é le 9 juin par henri-allauch
henri-allauch Posté(e) le 9 juin Signaler Posté(e) le 9 juin 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 ?
jojo Posté(e) le 9 juin Signaler Posté(e) le 9 juin 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
henri-allauch Posté(e) le 9 juin Signaler Posté(e) le 9 juin Si tu veux je peux essayer ton script sur un environnement différent pour voir ?
Messages recommandés