cron - bash skript soll in log Datei schreiben

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

cron - bash skript soll in log Datei schreiben

Beitrag von sukram » 14.08.2013 16:45:33

Hallo,

ich habe einen bash script der auf der Kommandozeile einwandfrei funktioniert.
Wenn ich das gleiche Skript unter meinem user von cron (crontab -e) starten lasse dann werden die logs nicht erstellt.
Ich habe einmal etwas herumexperimentiert. dyndns.log wird zwar erstellt aber ohne den Text von z.B. "Login successful"
Wer kann mir sagen was ich falsch mache?

Im bash Skript wird das Log wie folgt erstellt bzw. der Text angehängt

Code: Alles auswählen

echo $DATUM $ZEIT "Login successful" >> /tmp/dyndns.log
crontab -e hat folgenden Inhalt:

Code: Alles auswählen

0-2  * * * *   /home/markus/Skripte/login_d >> /tmp/dyndns.log
Ciao, Markus

Es hat alles seinen Grund...

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: cron - bash skript soll in log Datei schreiben

Beitrag von syssi » 14.08.2013 17:13:43

Kann es sein, dass das /tmp/dyndns.log durch deine Experimente schon existiert und der Cronjob von einem anderen User ausgefuehrt wird, welcher nun nicht in die Datei schreiben darf (Rechte?). Loesch die Datei einfach und warte auf den naechsten Cron-Lauf.

sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Re: cron - bash skript soll in log Datei schreiben

Beitrag von sukram » 14.08.2013 19:41:57

syssi hat geschrieben: Loesch die Datei einfach und warte auf den naechsten Cron-Lauf.
Genau so war es. Ich hatte das ganze mal testweise unter root laufen gehabt und da wurde die Datei angelegt.
Ich habe diese jetzt gelöscht und siehe da es wird der Skriptverlauf schon protokolliert. Danke.

In welche Logdatei schreibt den der Cron Deamon. Ich habe nichts gefunden was mir diesen Fehler gezeigt hat.
Ciao, Markus

Es hat alles seinen Grund...

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: cron - bash skript soll in log Datei schreiben

Beitrag von Cae » 14.08.2013 20:19:28

sukram hat geschrieben:In welche Logdatei schreibt den der Cron Deamon. Ich habe nichts gefunden was mir diesen Fehler gezeigt hat.
Sofern der Job einen Output hat, schickt er eine Mail an den Besitzer der Crontab. Falls du einen kaputten Mail-Setup hast und deshalb keine Systemmails empfaengst, solltest du mal in /var/mail/ gucken.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Re: cron - bash skript soll in log Datei schreiben

Beitrag von sukram » 14.08.2013 20:35:06

Cae hat geschrieben:
sukram hat geschrieben:In welche Logdatei schreibt den der Cron Deamon. Ich habe nichts gefunden was mir diesen Fehler gezeigt hat.
Sofern der Job einen Output hat, schickt er eine Mail an den Besitzer der Crontab. Falls du einen kaputten Mail-Setup hast und deshalb keine Systemmails empfaengst, solltest du mal in /var/mail/ gucken.

Gruss Cae
Auf diesem System war kein mail eingerichtet. Ich habe jetzt mal exim4 installiert und hoffe das ich dann etwas in /var/mail finden werde.

Ich habe mal früher auf SUN und HP Maschinen gearbeitet und da bekam ich auf der Konsole manchmal die Nachricht "You have mail" und mit dem Kommando "mail" konnte ich diese dann mir anzeigen lassen. Meistens waren das Systemmails. Ist das mit exim4 das gleiche?
Ciao, Markus

Es hat alles seinen Grund...

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: cron - bash skript soll in log Datei schreiben

Beitrag von syssi » 14.08.2013 20:41:43

Das Verhalten gibt es auch unter Linux, wenn der MTA entsprechend eingerichtet ist und Debianmailx installiert.

sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Re: cron - bash skript soll in log Datei schreiben

Beitrag von sukram » 15.08.2013 09:35:29

syssi hat geschrieben:Das Verhalten gibt es auch unter Linux, wenn der MTA entsprechend eingerichtet ist und Debianmailx installiert.
D.h. ich könnte exim4 wieder deinstallieren?
Ciao, Markus

Es hat alles seinen Grund...

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: cron - bash skript soll in log Datei schreiben

Beitrag von syssi » 15.08.2013 11:13:38

Nein, nein. Exim ist dein MTA. Ggf. kannst du es durch was leichtgewichtigeres ersetzen oder einen MTA wie ssmtp oder nullmailer installieren und damit alle (System-)Mails an eine externe eMail-Adresse schicken.

sukram
Beiträge: 566
Registriert: 22.08.2010 10:40:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 64560 Riedstadt

Re: cron - bash skript soll in log Datei schreiben

Beitrag von sukram » 15.08.2013 14:38:14

Müsste dann folgender cronjob eine Systemmail an mich erzeugen?

0-59 * * * * root echo "cron" >> /tmp/done.txt
Ciao, Markus

Es hat alles seinen Grund...

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: cron - bash skript soll in log Datei schreiben

Beitrag von syssi » 15.08.2013 14:46:00

Nein. Cron verschickt nur Mails, wenn das aufgerufene Skript eine Ausgabe auf "stderr/stdout" erzeugt. Du leitest stdout in eine Datei um, weshalb Cron nur im Fehlerfall eine Mail verschicken wuerde. Du kannst "tee" nutzen, um sowohl in eine Datei zu schreiben als auch eine Ausgabe zu erzeugen. Mit Hilfe von "MAILTO=emailadresse" im Kopf des Cronjobs kannst du ausserdem den Empfaenger bestimmen.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: cron - bash skript soll in log Datei schreiben

Beitrag von peschmae » 15.08.2013 19:12:44

Ich benutze für solche Sachen meist logger aus Debianbsdutils, damit kann man ins syslog schreiben. Das hat dann den Vorteil, dass das die Sachen auch von logrotate und so behandelt werden...

Code: Alles auswählen

$ logger asdf
$ tail /var/log/syslog
Aug 15 19:12:20 computername peschmae: asdf
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Antworten