Bonjour à tous,
Je viens ici désespéré car je ne trouve pas la solution à mon problème, j'ai créer 2 scripts de sauvegarde de base de données qui envoi les résultats de la sauvegarde par mail à mon équipe.
Un script pour PostGreSQL et un script pour MariaDB, mon problème est le suivant, lorsque le script MariaDB est exécuter via cron j'obtiens le message d'erreur suivant:
fatal : (user)(id): no recipients addresses found in message header
En revanche tout se déroule normalement lorsque j'execute ce script à la main avec le même compte utilisateur renseigné dans CRON.
De plus le serveur PostGreSQL qui a la même configuration postfix et la même structure de script n'a aucun problème avec l'envoi de mail via CRON.
Voici à quoi ressemble l'envoi de mail dans mon script:
Le contenu de $html3$dateHeureLancement.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 ########################################## # Envoi de Mail # ########################################## html='/home/scripts/Backup/MariaDBBackup.html' #Corps du mail au format HTML html1='/home/scripts/Backup/Temp/MariaDBBackupSuccessError' #Corps du mail au format HTML + Objet du mail (Success ou Error) html3='/home/scripts/Backup/Temp/MariaDBBackupFull' #Corps du mail au format HTML + Objet du mail (Success ou Error) + Logs sous forme de liste HTML + Sujet du mail html4="error" #Corps du mail au format HTML + Objet du mail (Success ou Error) + Logs sous forme de liste HTML + Sujet du mail + Log détaillé en cas d'erreur if [ $backupBDDError = "1" ] ; # Si la variable témoin est à 1 alors une erreur s'est produite pendant les dumps. then echo "Ajout de l'objet du mail dans le fichier HTML" sed "/<h2>/ a Bonjour , <br /> <br /> La sauvegarde du serveur MariaDB sur nom d'hôte (@ip) est en résultat <font color='red'>[ERROR]</font>. " $html >>$html1.txt echo "Ajout des logs des dumps dans l'objet du mail" sed "/<ul id='log'>/ r $loghtml" $html1.txt >> $html3.txt echo "Ajout du sujet du mail" sed "/Subject:/ c\Subject: [ERROR]Sauvegarde MDB (nom d'hote) [$cpt bases de données]" $html3.txt >> $html3$dateHeureLancement.txt echo "Ajout des log détaillé au mail en cas d'erreur" sed "/<ul id='logdetail'>/ r $logFileDetail" $html3$dateHeureLancement.txt >> $html3$html4$dateHeureLancement.txt echo "Envoi du mail d'erreur" /usr/sbin/sendmail -t < $html3$html4$dateHeureLancement.txt else echo "Ajout de l'objet du mail dans le fichier HTML" sed "/<h2>/ a Bonjour ,<br /> <br /> La sauvegarde du serveur MariaDB sur NomHOTE (AdresseIP) est en résultat <font color='green'>[SUCCESS].</font> " $html >>$html1.txt echo "Ajout des logs des dumps dans l'objet du mail" sed "/<ul id='log'>/ r $loghtml" $html1.txt >> $html3.txt echo "Ajout du sujet du mail" sed "/Subject:/ c\Subject: [SUCCES]Sauvegarde MDB (nom d'hote) [$cpt bases de données]" $html3.txt >> $html3$dateHeureLancement.txt echo "Envoi du mail de succès" /usr/sbin/sendmail -t < $html3$dateHeureLancement.txt fi
Comme vous pouvez le voir il y a bien un destinataire dans l'en-tête html.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 From: nomhote@domain.fr To: adespretz@domain.fr Subject: [SUCCES]Sauvegarde MDB (nom d'hôtes) [NB bases de données] Content-Type: text/html <html> <head> <meta charset="UTF-8"> </head> <body> <h2> Bonjour ,<br /> <br /> La sauvegarde du serveur MariaDB sur nom d'hote (@ip) est en résultat <font color='green'>[SUCCESS].</font> </h2> <ul id='log'> <li> <font color='green'>SUCCESS</font> : BDD1 dump <font color='green'>OK </font> 20M /home/scripts/Backup/Dump/20200221_155401BDD1.sql . </li> <li> <font color='green'>SUCCESS</font> : BDD2 dump <font color='green'>OK </font> 4,0K /home/scripts/Backup/Dump/20200221_155401BDD2.sql . </li> <li> <font color='green'>SUCCESS</font> : BDD3 dump <font color='green'>OK </font> 104M /home/scripts/Backup/Dump/20200221_155401BDD3 . </li> </ul> <ul id='logdetail'> </ul> </body> </html>
Je précise que j'ai essayé de changer mon fichier de txt à HTML et j'ai la même erreur.
Encore une fois la structure est la même que sur mon serveur Postgres où tout fonctionne parfaitement.
Voici les logs quand je lance le script à la main sur le serveur MariaDB:
Voici les logs quand je lance le script via crontab sur le serveur MariaDB:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Feb 21 11:20:55 nomhote postfix/pickup[8351]: 530016105A06: uid=1002 from=<MariaDBBackup2> Feb 21 11:20:55 nomhote postfix/cleanup[10758]: 530016105A06: message-id=<20200221102055.530016105A06@nomhote.localdomain> Feb 21 11:20:55 nomhote postfix/qmgr[8352]: 530016105A06: from=<MariaDBBackup2@domain.fr>, size=7978, nrcpt=1 (queue active) Feb 21 11:20:55 nomhote postfix/smtp[10761]: 530016105A06: enabling PIX workarounds: disable_esmtp delay_dotcrlf for smtp-relay.domain[ipServeurSMTP]:25 Feb 21 11:20:55 nomhote postfix/smtp[10761]: 530016105A06: to=<adespretz@domain.fr>, relay=smtp-relay.domain[ipServeurSMTP]:25, delay=0.15, delays=0.04/0.02/0.01/0.08, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 6E8A0414B8) Feb 21 11:20:55 nomhote postfix/qmgr[8352]: 530016105A06: removed
Voici les logs quand le script se lance via crontab sur le serveur PostgreSQL (ça marche sur ce serveur) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Feb 21 11:19:01 nomhote postfix/pickup[8351]: 4897B6105A06: uid=1002 from=<MariaDBBackup2> Feb 21 11:19:01 nomhote postfix/cleanup[10575]: 4897B6105A06: message-id=<20200221101901.4897B6105A06@spvlco7mdb01.localdomain> Feb 21 11:19:01 nomhote postfix/qmgr[8352]: 4897B6105A06: from=<MariaDBBackup2@domain.fr>, size=854, nrcpt=1 (queue active) Feb 21 11:19:01 nomhote postfix/smtp[10578]: 4897B6105A06: enabling PIX workarounds: disable_esmtp delay_dotcrlf for smtp-relay.domain[ipServeurSMTP]:25 Feb 21 11:19:01 nomhote postfix/smtp[10578]: 4897B6105A06: to=<root@domain.fr>, orig_to=<root>, relay=smtp-relay.domain[ipServeurSMTP]:25, delay=0.37, delays=0.16/0.08/0.08/0.05, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 90B10414B8) Feb 21 11:19:01 nomhote postfix/qmgr[8352]: 4897B6105A06: removed Feb 21 11:19:08 nomhote postfix/sendmail[10609]: fatal: MariaDBBackup2(1002): No recipient addresses found in message header
/etc/crontab de MariaDB :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Feb 21 10:10:16 nomhote postfix/pickup[29398]: B8111608B510: uid=1000 from=<PostgresBackup> Feb 21 10:10:16 nomhote postfix/cleanup[30008]: B8111608B510: message-id=<20200221091016.B8111608B510@nomhote.localdomain> Feb 21 10:10:16 nomhote postfix/qmgr[39254]: B8111608B510: from=<PostgresBackup@domain.fr>, size=959, nrcpt=1 (queue active) Feb 21 10:10:16 nomhote postfix/smtp[30011]: B8111608B510: enabling PIX workarounds: disable_esmtp delay_dotcrlf for smtp-relay.domain[ipServeurSMTP]:25 Feb 21 10:10:16 nomhote postfix/smtp[30011]: B8111608B510: to=<adespretz@domain.fr>, relay=smtp-relay.domain[ipServeurSMTP]:25, delay=0.11, delays=0.06/0.01/0.02/0.03, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as C5E1D41577) Feb 21 10:10:16 nomhote postfix/qmgr[39254]: B8111608B510: removed
/etc/crontab de PostGreSQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 54 15 * * mon,tue,wed,thu,fri MariaDBBackup2 . /home/scripts/Backup/MariaDBBackup_3.sh 55 18 * * mon,tue,wed,thu,fri MariaDBBackup2 . /home/scripts/Backup/MariaDBBackup_purge.sh
Par avance merci à ceux qui auront le courage de lire mon pavé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 10 10 * * mon,tue,wed,thu,fri PostgresBackup . /home/scripts/Backup/PostgresBackup2.sh 55 18 * * mon,tue,wed,thu,fri PostgresBackup . /home/scripts/Backup/PostgresBackup_purge.sh
Cordialement
PS: Les 2 serveurs sont sous centos 7
Alexis.
Partager