gezielter Abbruch eines Mailversandes

grunzl

Registered User
Hallo zusammen,

nun lese ich in Eurem Forum schon eine Weile mit und habe als Newbie in Adminthemen auch bereits einige gute Tipps hier finden können.

Nun habe ich aber ein Problem, bei dem ich hier auf Unterstützung hoffe. Vielleicht aber kurz zu der Vorgeschichte:

Ich lasse 2-mal täglich per cronjob ein Backup meiner Datenbank erstellen und auf dem Server speichern. Heute Nacht wollte ich mal versuchen, mir so ein Backup nach der Erstellung automatisch per Mail zusenden zu lassen. Leider wurde aber nach der Durchführung des Cronjobs keine Mail versandt.....so dachte ich wenigstens. So habe ich aus dem Bash-Script, das vom Cronjob aufgerufen wird, den mail-Befehl wieder entfernt.

Seit dem erhalten ich aber in regelmäßigen Abständen immer 2 Mails hintereinander, die jeweils ca. 3MB groß sind und anscheinend das Backup meiner DB integriert haben (es handelt sich nur um kryptische Zeichen).

Ich vermute, dass der Auftrag diese Mail zu verschicken, immer noch im System hängt und würde das gerne stoppen. Wenn ich denn wüsste wie. ;)

Installiert ist Postifx und Courier als Mailserver.

Dankeschön im Voraus!
 
Eigentlich hilft da nur eins: Mehr Info! Kommt die Mail von Cron@Host?

Und generell ist es immer schön, wenn man über ein Script spricht, das dieses oder jenes macht und dieses oder jenes aber nicht macht oder nicht ganz oder doch oder wie auch immer, dass man dann das Script oder Teile davon postet.

Edit: Wenn ich schon von Scripts rede, gleich noch zu Mails: Wenn du über Mails sprichst die du bekommst, wäre es nett die Header zu posten. Oder wenigstens Betreff oder Absender oder was-auch-immer-ermöglicht-die-mail-irgendwie-zu-bewerten.
 
Last edited by a moderator:
erstmal vielen Dank für Eure Antworten. Ja, was notwendig ist zu erwähnen, um ein Problem näher eingrenzen zu können, das habe ich noch nicht drauf. Sorry :rolleyes:

Also mein Script "sqldump.sh" sah zu dem entsprechenden Zeitpunkt so aus:
Code:
#!/bin/sh
#
DATE=$(date '+%Y-%m-%d-%H-%M')
#
mysqldump –u’DBNAME’ –p’PASSWORD’ DBsql1 > /home/backup/db_backup/dump_$DATE.sql && gzip -5 /home/backup/db_backup/dump_$DATE.sql
# folgende Zeile habe ich dann wieder entfernt
mail -s "testbackup" [email protected] < dump_$DATE.sql.gz
#

Soll ich das mit dem "killall" so probieren?
Code:
killall -i ssqldump.sh

Der Mailheader hat folgenden Inhalt (Details zur Mail- und Serveradresse habe ich ersetzt)
Code:
Return-Path: <[email protected]>
X-Flags: 1000
Delivered-To: GMX delivery to [email protected]
Received: (qmail invoked by alias); 24 Jan 2009 17:14:55 -0000
Received: from meinedomain.com (EHLO xyzserver.net) [85.214.133.149]
  by mx0.gmx.net (mx045) with SMTP; 24 Jan 2009 18:14:55 +0100
Received: by xyzserver.net (Postfix, from userid 0)
	id 9B823119162; Sat, 24 Jan 2009 01:33:49 +0000 (UTC)
To: [email protected]
Subject: testbackup
Message-Id: <[email protected]>
Date: Sat, 24 Jan 2009 01:33:49 +0000 (UTC)
From: [email protected] (root)
X-GMX-Antivirus: 0 (no virus found)
X-GMX-Antispam: 0 (Mail was not recognized as spam)
X-GMX-UID: pH5CcWMTYW0+di2AVmZpq2x0amthcxsp
X-MSK: 2BIG
Falls die Ausgabe von ps aux auch von Interesse ist....
Code:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1868   660 ?        S<s  01:21   0:00 init [2]      
root     26381  0.0  0.0   1556   560 ?        S<s  01:21   0:01 /sbin/syslogd
bind     26401  0.0  0.1  36396  2780 ?        S<sl 01:21   0:00 /usr/sbin/named -u bind
root     26456  0.0  0.0   2596  1328 ?        S<   01:21   0:00 /bin/sh /usr/bin/mysqld_safe
mysql    26495  1.0  3.5 199516 55240 ?        S<l  01:21  10:23 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root     26497  0.0  0.0   1480   504 ?        S<   01:21   0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
root     26551  0.0  0.0   1668   400 ?        S<   01:21   0:00 /usr/sbin/courierlogger -pid=/var/run/courier/authdaemon/pid -start /usr/lib/courier/courier-authlib/authdaemond
root     26552  0.0  0.0   4152  1052 ?        S<   01:21   0:00 /usr/lib/courier/courier-authlib/authdaemond
root     26561  0.0  0.0   1672   328 ?        S<   01:21   0:00 /usr/sbin/courierlogger -pid=/var/run/courier/imapd.pid -start -name=imapd /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 143 /usr/lib/courier/courier/imaplogin /usr/bin/imapd Maildir
root     26562  0.0  0.0   1776   544 ?        S<   01:21   0:00 /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 143 /usr/lib/courier/courier/imaplogin /usr/bin/imapd Maildir
root     26577  0.0  0.0   1672   328 ?        S<   01:21   0:00 /usr/sbin/courierlogger -pid=/var/run/courier/imapd-ssl.pid -start -name=imapd-ssl /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 993 /usr/bin/couriertls -server -tcpd /usr/lib/courier/courier/imaplogin /usr/bin/imapd Maildir
root     26578  0.0  0.0   1776   544 ?        S<   01:21   0:00 /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=20 -nodnslookup -noidentlookup 993 /usr/bin/couriertls -server -tcpd /usr/lib/courier/courier/imaplogin /usr/bin/imapd Maildir
root     26583  0.0  0.0   1776   528 ?        S<   01:21   0:00 /usr/sbin/couriertcpd -pid=/var/run/courier/pop3d.pid -stderrlogger=/usr/sbin/courierlogger -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup -address=0 110 /usr/lib/courier/courier/courierpop3login /usr/lib/courier/courier/courierpop3d Maildir
root     26585  0.0  0.0   1668   476 ?        S<   01:21   0:00 /usr/sbin/courierlogger courierpop3login
root     26596  0.0  0.0   1672   328 ?        S<   01:21   0:00 /usr/sbin/courierlogger -pid=/var/run/courier/pop3d-ssl.pid -start -name=pop3d-ssl /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 995 /usr/bin/couriertls -server -tcpd /usr/lib/courier/courier/courierpop3login /usr/lib/courier/courier/courierpop3d Maildir
root     26597  0.0  0.0   1776   544 ?        S<   01:21   0:00 /usr/sbin/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 995 /usr/bin/couriertls -server -tcpd /usr/lib/courier/courier/courierpop3login /usr/lib/courier/courier/courierpop3d Maildir
root     26605  0.0  0.0   4196  1500 ?        S<   01:21   0:00 /usr/lib/courier/courier-authlib/authdaemond
root     26606  0.0  0.0   4196  1500 ?        S<   01:21   0:00 /usr/lib/courier/courier-authlib/authdaemond
root     26607  0.0  0.0   4196  1496 ?        S<   01:21   0:00 /usr/lib/courier/courier-authlib/authdaemond
root     26608  0.0  0.0   4196  1496 ?        S<   01:21   0:00 /usr/lib/courier/courier-authlib/authdaemond
root     26609  0.0  0.0   4196  1500 ?        S<   01:21   0:00 /usr/lib/courier/courier-authlib/authdaemond
root     26611  0.0  0.0   9776   976 ?        S<sl 01:21   0:04 /usr/sbin/nscd
root     27716  0.0  0.1   5088  1572 ?        S<s  01:21   0:01 /usr/lib/postfix/master
postfix  27724  0.0  0.1   5088  1664 ?        S<   01:21   0:00 qmgr -l -t fifo -u
root     27739  0.0  0.0   4948  1088 ?        S<s  01:21   0:00 /usr/sbin/sshd
nobody   28066  0.0  0.0   8508  1468 ?        S<s  01:22   0:00 proftpd: (accepting connections)
root     28081  0.0  0.0   2136   712 ?        S<s  01:22   0:00 /usr/sbin/cron
root     28194  0.0  0.5  57888  8156 ?        S<s  01:22   0:11 /usr/sbin/apache2 -k start
root     28320  0.0  0.3   6844  4716 ?        S<s  01:22   0:01 /usr/sbin/munin-node
postfix  20221  0.0  0.0   5052  1536 ?        S<   17:36   0:00 pickup -l -t fifo -u -c
postfix  22097  0.0  0.1   7652  2468 ?        S<   17:39   0:00 cleanup -z -t unix -u -c
postfix  22098  0.0  0.1   7596  2364 ?        S<   17:39   0:00 trivial-rewrite -n rewrite -t unix -u -c
postfix  22099  0.0  0.1   5224  1804 ?        S<   17:39   0:00 smtp -t unix -u -c
www-data 22406  5.8  0.7  58800 11564 ?        S<   17:40   0:03 /usr/sbin/apache2 -k start
root     23594  0.1  0.1   8064  2112 ?        S<s  17:40   0:00 sshd: snoopy [priv]
snoopy   23617  0.0  0.0   8212  1272 ?        S<   17:41   0:00 sshd: snoopy@pts/0
snoopy   23618  0.6  0.1   5756  2788 pts/0    S<s  17:41   0:00 -bash
root     23665  0.0  0.0   4524  1088 pts/0    S<   17:41   0:00 su root
root     23669  0.0  0.1   4380  1572 pts/0    S<   17:41   0:00 bash
www-data 23693  4.4  0.6  58588 10192 ?        S<   17:41   0:00 /usr/sbin/apache2 -k start
www-data 23717  0.6  0.0      0     0 ?        Z<   17:41   0:00 [apache2] <defunct>
root     23721  2.0  0.0   3824   876 pts/0    R<+  17:41   0:00 ps aux

Helfen diese Infos weiter?
 
So dumpst und komprimierst du in einem Durchgang ohne temporäres File:
Code:
mysqldump –u’DBNAME’ –p’PASSWORD’ DBsql1 | bzip2 -c9 > /home/backup/db_backup/dump_$DATE.sql.bz2

Ein zip-File musst du als Anhang verschicken - das geht mit mail AFAIK nicht. mutt eignet sich dafür.

Wieso nach dem Entfernen aus dem Cron-Script immer noch Mail kommen entzieht sich meiner Vorstellungskraft. ;) Das Script kann es eigentlich nicht sein, da es ja nur einmal eine Mail schickt und dann terminiert.
 
Cron-Jobs können prinizipiell an verschiedenen Stellen im System stehen:
/etc/crontab
/etc/cron.d/
/etc/cron.hourly(oder daily)
/var/spool/cron/tabs/root
dürften die wichtigsten sein.

Schau' die doch mal durch.

Interessant ist auch /var/log/messages, insbesondere die Zeilen bezüglich cron.
 
Hallo

die Mail-Queue sieht wie folgt aus:
Code:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
9B823119162  9385062 Sat Jan 24 01:33:49  [email protected] (conversation with mx0.gmx.de[213.165.64.100] timed out while sending message body)
                                         [email protected]

-- 9165 Kbytes in 1 Request.

So wie ich das verstehe, kommt (von GMX?) immer ein timeout und es wird versucht, die Mail ständig erneut zu versenden. Verstehe ich das richtig?
Würde es etwas bringen, wenn ich diese Mail aus der Queue entsprechend Huschis Seite lösche?

In der /var/log/messages steht seit ewigen Zeiten nur "-- MARK --" und die cronjobs habe ich durchgesehen, konnte aber nichts auffälliges finden.
 
Du mußt die Mail löschen, Andrea.

Durch die fehlende Kodierung sind Binärzeichen im Message-Body, u.a. nach 3 MB ein Zeichen, welches GMX als Ende interpretiert (z.B. Ctrl-D, ein Nullbyte oder eine Zeile mit einem einzelnen Punkt).

Dadurch wird die Mail bei jedem Zustellversuch von GMX als vollständig erkannt und angenommen, qmail hat allerdings noch nicht alle 9 MB gesendet.

Das Spiel wird sich vermutlich wiederholen, bis qmail nach 7 Tagen endgültig aufgibt.

Für die Zukunft: Attachments sollten MIME-kodiert sein.
Falls auf Deinem System nail existiert, wäre das so möglich:
Code:
nail -s "testbackup" [email protected] -a dump_$DATE.sql.gz
 
Vielen Dank Euch für Eure Mühen! :)

Nachdem ich die Mail in der Queue gelöscht hatte, kam keine Mail mehr an. Ich scheine das Problem also los zu haben.

Vielen Dank auch für Deine Erläuterungen, Whistler. Da habe ich wieder was dazu gelernt. Leider habe ich weder nail, noch mailx oder mutt auf dem System. Bin mir auch nicht sicher, ob ich das so einfach neben Postfix und Courier installieren kann, ohne dass sich da was in die Quere kommt. Mal sehen, wie ich da weiter mache. ;)
 
mutt ist entfernt sowas wie (nicht schlagen) Outlook oder TB. Mails lesen auf Consolenebene.

Ich konnte Deinen Postings leider nicht entnehmen, welche Distribution Du einsetzt. Wenn es ein SuSe ist, nutze yast, bei Debian apt-get etc.pp.

Bei Fragen, fragen!

--marneus
 
Hallo marneus,

ich habe Debian etch (4.0). Laut aptitude sind mailx und metamail installiert. Aber damit scheine ich über die Konsole bzw. über ein Bash-Script (für den Cronjob) auch keine Mails mit Anhang schicken zu können. Oder irre ich mich da?
 
Code:
Usage: mailx [-BDFintv~] [-s subject] [COLOR="Red"][B][-a attachment ][/B][/COLOR] [-c cc-addr] [-b bcc-addr]
            [-r from-addr] [-h hops] [-A account] [-R reply-addr] to-addr ...
       mailx [-BDeHiInNv~] [-T name] [-A account] -f [name]
       mailx [-BDeinNv~] [-A account] [-u user]
 
Hallo Whistler,

vielen Dank erste einmal. :)

Diese Info hatte ich mir über "mailx --help" auch geholt und versucht, eine Mail mit Attachment zu versenden. Allerdings erhalte ich dann eine Meldung, dass -a "nicht erlaubt" sei (oder so ähnlich). Leider kann ich die genaue Meldung gerade nicht nachvollziehen, weil ich hier im Job keine Anbindung an den Server habe. :(
 
Back
Top