J’ai créé un script qui s’exécute chaque nuit sur mon serveur Linux et qui utilise mysqldump
pour sauvegarder chacune de mes bases de données MySQL dans des fichiers .sql et les regrouper dans un fichier .tar compressé. L'étape suivante consiste à envoyer ce fichier tar par e-mail à un serveur de messagerie distant pour qu'il soit conservé en lieu sûr. J’ai pu envoyer le script brut dans le corps d’un courriel en envoyant le fichier texte de sauvegarde à mailx
comme suit :
$ cat mysqldbbackup.sql | mailx [email protected]
cat
fait écho au texte du fichier de sauvegarde qui est envoyé dans le programme mailx
avec l'adresse électronique du destinataire passée en argument.
Bien que cela réponde à mes besoins, je pense que l'on pourrait faire mieux : Y a-t-il un moyen, en utilisant des scripts shell ou autre, d'envoyer le fichier .tar compressé dans un message électronique sortant en tant que attachement? Cela éviterait d'avoir à traiter des messages électroniques très longs qui contiennent des données d'en-tête et qui ont souvent des problèmes d'enveloppement des mots, etc.
En regardant man mailx
, le programme mailx n'a pas d'option pour attacher un fichier. Vous pouvez utiliser un autre programme tel que mutt.
echo "This is the message body" | mutt -a file.to.attach -s "subject of message" [email protected]
Les options de ligne de commande pour mutt peuvent être affichées avec mutt -h
.
Selon votre version de linux, il peut être appelé mail. Pour citer @David ci-dessus :
mail -s "Backup" -a mysqldbbackup.sql [email protected] < message.txt
ou aussi :
cat message.txt | mail -s "Backup" -a mysqldbbackup.sql [email protected]
Vous pouvez utiliser [mutt][1] pour envoyer l'email avec la pièce jointe.
mutt -s "Backup" -a mysqldbbackup.sql [email protected] < message.txt