Warum senden einige meiner Cron-Jobs keine Deamon-E-Mails?

1

Meine Crontab:

PATH=/sbin:/bin:/usr/sbin:/usr/bin
[email protected]
HOME=/
LD_LIBRARY_PATH=/usr/local/lib/
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)  OR
#sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed
05 01 * * * /root/backup_scripts/run_backups.sh
45 03 * * * /root/backup_scripts/new_scripts/run.sh> "/root/backup_scripts/new_scripts/$(date).run.log" 2>&1

Ich erhalte Daemon-E-Mails mit dem Job run_backups.sh

Ich erhalte KEINE Daemon-E-Mails mit dem Job run.sh, habe jedoch überprüft, ob er ausgeführt wird

Hier ist die Daemon-E-Mail für die run_backups.sh:

    from    Cron Daemon <[email protected]>
to  [email protected]
date    Thu, Sep 30, 2010 at 2:22 AM
subject Cron <root@aapsan01> /root/backup_scripts/run_backups.sh
mailing list    <admins.boingoboingo.com> Filter messages from this mailing list
mailed-by   boingoboingo.com
hide details 2:22 AM (7 hours ago)
[09/30/10 01:05:01] mounting the usb drive
[09/30/10 01:05:09] usbdrive1 is ready.
[blah]blah, blah blah.
[09/30/10 06:41:51] finished syncing drives.
[09/30/10 06:41:53] usbdrive1 was disconnected.
Treibgut N. Jetsam
quelle

Antworten:

3

E-Mails sind das Ergebnis von Daten, die von Ihrem Cron-Job an STDOUT oder STDERR gesendet werden. Bei dem fraglichen Cron-Job wurden beide in die Protokolldatei umgeleitet.

> "/root/backup_scripts/new_scripts/$(date).run.log" 2>&1
^ redirect STDOUT to file ^                          ^^^^ redirect STDERR to SDTOUT 
Chris Nava
quelle
Während die andere Antwort hilfreich war, haben Sie sie kurz und bündig formuliert. Danke.
Flotsam N. Jetsam
1

Nachdem Sie die Standardausgabe umleiten run.shzu /root/backup_scripts/new_scripts/$(date).run.loggibt es nur den Fehlerausgang links nach Standardausgabe zu umleiten. Könnte es sein, dass run.sheinfach keine Fehler entstehen?

Wenn Sie die Standardausgabe zu sehen , run.shVerwendung , teees zu speichern, Datei.

45 03 * * * /root/backup_scripts/new_scripts/run.sh | tee "/root/backup_scripts/new_scripts/$(date).run.log" 2>&1
Benjamin Bannier
quelle
Wollen Sie damit sagen, dass meine Umleitung die Daemon-E-Mail stoppt?
Treibgut N. Jetsam
@Flotsam: Nein, ich habe gesagt, dass Ihr Befehl (mit Weiterleitungen usw.) nur keine Ausgabe erzeugt.
Benjamin Bannier
Ok, also senden die Daemon-E-Mails nur bei Fehler? Es ist wahr, dass die Protokolldatei leer ist und daher keine Fehler vorliegen, aber ich dachte, der Dämon hat trotzdem eine E-Mail gesendet.
Treibgut N. Jetsam
@Flotsam: Es wurde nur bei einem Fehler gesendet, weil Sie stout in eine Datei umgeleitet haben und im stdout-Stream nichts mehr vorhanden ist. Und die cronAFAIK schickt keine leeren Ausgaben nur für Tritte.
Benjamin Bannier
@honk: Du sagst (glaube ich), dass stderr nicht umgeleitet wird, aber es ist ( 2>&1).
Dennis Williamson