passepartout
Goto Top

cron wird nicht ausgeführt

Der Cronjob für eine einfache automatische Datensicherung funktioniert leider nicht

Hallo liebe Forumsgemeinde,

ich habe einen (File-)Server auf xubuntu-Basis eingerichtet, auf dem ich für unser kleines Netzwerk die Daten zentral speichere.
Ich möchte diese auf eine externe Festplatte sichern, die auf /media/disk eingehängt ist.

Dazu verwende ich folgende Bash

#!/bin/bash
DATUM=`date +%y-%m-%d~%H:%M`
mv /media/disk/_current/ /media/disk/${DATUM}/
rsync -a --link-dest=/media/disk/${DATUM}/ /home/ /media/disk/_current/ 

Die auch, wenn ich sie aus der Konsole aufrufe, einwandfrei das tut, was ich möchte.

Nun habe ich in der Crontab folgende Zeile drin (aus debug-Zwecken hatte ich vorerst auf alle 2 Minuten eingestellt)

# m h  dom mon dow   command
*/2 * * * * root /bin/bash /etc/backup.sh > /home/backup.log

In den Zugriffsstatistiken registriert der Server auch, dass cron was tut, aber in den entsprechenden Ordner werden keine Dateien gesichert.
Leider wird auch in die backup.log nichts geschrieben.

Hat vielleicht jemand einen Tipp für mich? Für Hilfe wäre ich dankbar und sende Euch

Grüße aus Hamburg,

Michael

Content-ID: 115755

Url: https://administrator.de/contentid/115755

Ausgedruckt am: 21.09.2024 um 01:09 Uhr

75823
75823 11.05.2009 um 12:22:14 Uhr
Goto Top
Versuch mal den Script die Rechte für Ausführung geben und lasse in den Crontab nur /etc/backup.sh
Passepartout
Passepartout 11.05.2009 um 12:35:03 Uhr
Goto Top
Hallo,

danke für Deinen schnellen Tipp, hat leider gar nichts geändert face-sad

Rechte der Datei
-rwxrwx--x   1 root root       208 2009-05-11 10:08 backup.sh

Neuer Inhalt crontab
# m h  dom mon dow   command
*/2 * * * * root /etc/backup.sh > /home/backup.log

Liebe Grüße,
Michael
75823
75823 11.05.2009 um 12:48:20 Uhr
Goto Top
Also nur:
*/2 * * * * root /etc/backup.sh
nicht:
*/2 * * * * root /etc/backup.sh > /home/backup.log
Passepartout
Passepartout 11.05.2009 um 13:16:04 Uhr
Goto Top
Hallo,

leider keine Änderung face-sad
Was mich wundert, er scheint das Skript aufzurufen, das Skript funktioniert ohne Cron wunderbar... woran kann das liegen?

Liebe Grüße,
Michael
dog
dog 11.05.2009 um 13:27:09 Uhr
Goto Top
Das könnte z.B. an deinem $PATH liegen.

Bedenke:
> Datei

loggt nur den STDOUT nach Datei.
Du willst aber STDOUT und STDERROR haben.
Dazu musst du schreiben:
&> Datei

Vermutlich wird es darauf hinauslaufen, dass rsync nicht gefunden wird.
Darum solltest du in cron-Scripts unbedingt den absoluten Pfad zu einem Programm verwenden (den findest du mit which rsync)

Wenn dein Server richtig konfiguriert ist, solltet du übrigens E-Mails mit den Fehlermeldungen erhalten haben.

Grüße

Max
Passepartout
Passepartout 11.05.2009 um 13:35:41 Uhr
Goto Top
Hallo,

danke für den Hinweis. Habe nun folgende Zeile im Crontab stehen.
*/2 * * * * root /etc/backup.sh &> /home/backup.log

Außerdem habe ich den Pfad von rsync angepasst.
Leider tut sich trotzdem nichts.

Da der Server nur für Dateiverwaltung zuständig ist, habe mailtechnisch gar nichts eingerichtet.

Vielleicht noch eine Idee?
Liebe Grüße,

Michael
75823
75823 11.05.2009 um 14:39:36 Uhr
Goto Top
Ok, mein letzte Versuch. Probiere dann exec hinzufügen:
*/2 * * * * root exec /etc/backup.sh
Passepartout
Passepartout 11.05.2009 um 14:58:31 Uhr
Goto Top
leider auch das ohne Erfolg...
dog
dog 11.05.2009 um 15:17:00 Uhr
Goto Top
Bist du dir sicher, dass cron überhaupt ausgeführt wird?

Auf Debian-Systemen sollte sich dann z.B. in der /var/log/syslog folgendes befinden:

May 11 11:11:11 servername /USR/SBIN/CRON[PID]: (root) CMD (/befehl.sh &> /tmp/ouput)

Grüße

Max
Passepartout
Passepartout 12.05.2009 um 07:49:41 Uhr
Goto Top
Hallo,

hier ein Auszug aus dem Syslog.
Könnte es sein, dass die anderen Fehler für das komische Verhalten verantwortlich sind?

May 11 08:34:02 FileServer /USR/SBIN/CRON[22466]: (root) CMD (root /bin/ bash /etc/backup.sh > /home/backup.log)
May 11 08:34:17 FileServer kernel: [2331966.828018] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:34:53 FileServer kernel: [2332002.828026] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:35:29 FileServer kernel: [2332038.828027] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:36:01 FileServer /USR/SBIN/CRON[22705]: (root) CMD (root /bin/ bash /etc/backup.sh > /home/backup.log)
May 11 08:36:05 FileServer kernel: [2332074.828026] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:36:41 FileServer kernel: [2332110.828028] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:37:17 FileServer kernel: [2332146.828021] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:37:53 FileServer kernel: [2332182.828027] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:38:01 FileServer /USR/SBIN/CRON[22867]: (root) CMD (root /bin/ bash /etc/backup.sh > /home/backup.log)
May 11 08:38:29 FileServer kernel: [2332218.828028] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:39:05 FileServer kernel: [2332254.828020] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:39:41 FileServer kernel: [2332290.828027] Filesystem "sdf1": xfs_log_force: error 5 returned.  
May 11 08:40:01 FileServer /USR/SBIN/CRON[22888]: (root) CMD (root /bin/ bash /etc/backup.sh > /home/backup.log)

Vielen Dank und liebe Grüße,

Michael
75823
75823 12.05.2009 um 08:02:38 Uhr
Goto Top
Ist das was mit Formatierung ? Oder hasst du da ein Leerzeichen zwischen /bin/ und bash? Zweitens, du hasst da ein root zu viel. Syslog soll so aussehen:
(root) CMD ( /bin/bash /etc/backup.sh > /home/backup.log )
oder auch so:
(root) CMD ( exec /etc/backup.sh > /home/backup.log )
aber nich wie es bei dir der Fall ist.
Passepartout
Passepartout 12.05.2009 um 09:30:13 Uhr
Goto Top
Hallo,

ich habe es nun hinbekommen.
Habe einfach die gleiche Zeile nicht über
sudo crontab -e
sondern mit vim in /etc/crontab direkt eingetragen.

Nun funktioniert alles wunderbar, ganz lieben Dank!

Michael