per ssh eine Mail versenden

jogiebaer

Member
Hallo zusammen,

ich habe gerade mir ein SSH-Script geschrieben, das miene SQl Datenbank in ein tar File packt.
Jetzt würde ich gerne die Datei per Mail versenden, leider weiß ich nicht wie das die SSH Befehle sind!

Könnt ihr mir bitte helfen!?
Gibt es irgendwo ein HowTO oder eine Erklärung der Befehle?

Gruß
Jogie
 
Last edited by a moderator:
Schau dir mal "mail" an; allerdings kann das nicht mit Anhängen umgehen. Willst du unbedingt Mails mit Attachments verschicken, solltest du dir mal die Kommandozeilenoptionen von "mutt" anschauen.
 
Schreib einfach das Ergebnis von mysqldump in die E-Mail. Dann brauchste keinen Anhang.
 
Zum Verschicken von Anhängen brauchst Du das Programm uuenview UUDeview Home Page

Code:
echo "Backup von heute" | uuenview -a -b -m "backup@meine-domain.de" dump.sql.bz2
Sendet Dir die Binärdatei 'dump.sql.bz2' zu. Dabei solltest Du beachten, dass die meisten Mailer keine Dateien > 10 MB annehmen...

Alternativ kannst Du die Datei auch mit 'uuencode' codieren (bei jedem Linux standardmäßig installiert), das allerdings nicht automatisch die MIME-konformen Header einfügt (Du musst diese Mail dann als txt abspeichern und durch 'uudecode' schicken, während Du bei 'uuenview' einfach nur das Attachment speichern musst. Wie das Versenden mit 'uuencode' geht, steht in der man-page.

Viele Grüße,
LinuxAdmin
 
önnt ihr mir nochsagen bitte, wie ich die Datenbak exportiere und dies dann per Text Mail versenden kann?
Das ist dann doch einfacher

EDIT: Also wie ich die Mail versende weiß ich ja jetzt das geht mit der "Mail" Funktion aber wie exportier ich die Datenbank als Text?


gruß
jogie
 
Last edited by a moderator:
Hallo!
[man]mysqldump[/man]
>>mysqldump -u benutzer -PPasswort Datenbankname >Datenbankdump.txt

mfG
Thorsten
 
Vielen Dank das Problem wäre jetzt schon einmal geklärt.
Das nächste wäre wie öffnen ich die Textdatei, kopiere den Text raus und schreib ihn in eine Mail?

Gruß
jogie
 
Code:
mysqldump -u benutzer -PPasswort Datenbankname |bzip2 -9 |uuencode -m "Mysql-Daten"  |mailx -s "Backup-Daten `date +%Y-%m-%d`" backup@meine-domain.de

Die Mail musst Du dann als TXT speichern. Zum Rücksichern die TXT-Datei auf den Server kopieren und dann
Code:
uudecode < backupmail.txt | bzip2 -dc | mysql -u benutzer -PPasswort Datenbankname

So sollte es funktionieren -- habe das jetzt aber nicht getestet. Leg Dir am besten eine Datenbank zum Testen an und probiere es damit aus. Leider haben schon viele Admins feststellen müssen, dass ihre Scripte jahrelang wunderbare Backups erstellt haben, die sich dann nicht wieder zurücksichern ließen. Daher ist es sinnvoll hin und wieder auch diesen Schritt zu testen.

Viele Grüße,
LinuxAdmin
 
Last edited by a moderator:
Hi,

ich bin mir gerade nicht 100%ig sicher, aber folgendes dürfte auch funktionieren.

Code:
mysqldump -u benutzer -PPasswort Datenbankname >Datenbankdump.txt | mail -s "Datenbank-Backup" ich@meine-domain.de

-W
 
eine Alternative wäre noch die Verwendung von mutt - das kann Attachments von der Kommandozeile verschicken.

mutt -s "SQL Dump" -a mysql.bz2 email@domain < /dev/null

und der Dump ist zu dir unterwegs.
 
Hallo,

also ich habs jetzt mal versucht mit folgendem Code

Code:
DATE=`date +"%Y%m%d"`
/etc/init.d/mysql stop
mysqldump -u SQLBENUTZER -PDBPWD DB >sqldump.txt | mail -s "Datenbank-Backup $DATE" Mailaddy
/etc/init.d/mysql start
echo "Mail wurde versand!"

So sieht meine "backup" Datei aus

aber leider funktioniert es nicht es passiert einfach gar nichts kommt keine Mail an

Könnt ihr mir weiterhelfen?

EDIT: Bitte

Gruß
jogie
 
Last edited by a moderator:
ok hab ich geändert danke
nächstes Problem ist nur wenn ich mich die Datei ausführe

Ich würd mal sagen mit ./backup kommt die Meldung ichhab keine Berechtigung allerdings bin ich als root angemeldet!
??
 
...und die Mail, die Du erhalten wirst, wird genau 0 Zeilen lang sein. Schau Dir noch mal mein Beispiel genau an, was da passiert. Du hast das Beispiel von wstuermer, in das sich ein kleiner Fehler eingeschlichen hat, einfach übernommen, ohne es zu verstehen....

LinuxAdmin
Edit:
Code:
chmod +x backup
 
Nein, mailx und mail erfüllen den selben Zweck, bzw. sind ein und das selbe Programm
Code:
ls -l /usr/bin/mailx /usr/bin/mail
lrwxrwxrwx 1 root root 4 2007-11-03 23:45 /usr/bin/mail -> nail
lrwxrwxrwx 1 root root 4 2007-11-03 23:45 /usr/bin/mailx -> nail

Noch ein Tipp:
'<' leitet die Standard-Eingabe um, d.h. der Inhalt der Datei wird eingegeben
'>' leitet die Standard-Ausgabe in eine Datei um
'|' verbindet die Standard-Ausgabe eines Programms mit der Standard-Eingabe des nächsten Programms: "Pipe"
 
Last edited by a moderator:
Also ich hab jetzt dienen Code angewendet

$DATE=`date +"%Y%m%d"`
/etc/init.d/mysql stop
mysqldump -u SQLBENUTZER -PDBPWD DB |bzip2 -9 |uuencode -m "Mysql-Daten" |mailx -s "Backup-Daten $DATE" Mailaddy
/etc/init.d/mysql start
echo "Mail wurde versand!"

Die Pipe Sache hab ich verstanden

Nur wie gesagt ich kann die Datei nicht ausführen hab angeblich keine Berechtigung!
Edit: Hab ich auf der 1. Seite beschrieben!

gruß
jogie
 
Last edited by a moderator:
Back
Top