• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Sicherungsskript mithilfe von crontab läuft nicht!?!

Hacki_FCB

Newbie
Hallo,

ich möchte gerne 3 Verzeichnisse mithilfe von crontab sichern.
Das Backup-Skript befindet sich unter /root/skripte und hat den folgenden Inhalt:

#!/bin/sh
/etc/init.d/mysql stop;
rm -r /root/backup;
mkdir /root/backup;
cp -r /var/lib/mysql/mysql /root/backup;
cp -r /var/lib/mysql/testordner1 /root/backup;
cp -r /root/testordner2 /root/backup;
/etc/init.d/mysql start;


Wenn ich das Skript nun manuell anstoße (als root angemeldet) läuft auch alles tadellos!
Dann habe ich den folgenden crontab-Eintrag gemacht unter /etc mittels crontab -e :

#!/bin/sh
# m h dom mon dow command
30 23 * * 1-5 root sh /root/skripte/backup.sh


Jedoch läuft dies nicht!

Kann mir wer sagen was ich falsch mache? Bin noch in den Anfängen mit Linux zu arbeiten :???:
Bitte helft mir!

Danke im vorraus!

MfG
Hacki_FCB
 
A

Anonymous

Gast
Hacki_FCB schrieb:
Dann habe ich den folgenden crontab-Eintrag gemacht unter /etc mittels crontab -e :

#!/bin/sh
# m h dom mon dow command
30 23 * * 1-5 root sh /root/skripte/backup.sh
in normalen crontabs die mittels crontab -e angelegt werden keinen User eintragen, der User der automatisch genommen wird, ist derjenige welcher crontab -e aufgerufen hat.


robi
 
OP
H

Hacki_FCB

Newbie
robi schrieb:
Hacki_FCB schrieb:
Dann habe ich den folgenden crontab-Eintrag gemacht unter /etc mittels crontab -e :

#!/bin/sh
# m h dom mon dow command
30 23 * * 1-5 root sh /root/skripte/backup.sh
in normalen crontabs die mittels crontab -e angelegt werden keinen User eintragen, der User der automatisch genommen wird, ist derjenige welcher crontab -e aufgerufen hat.


robi

Danke für die schnelle Antwort!
Jedoch klappt das immer noch nicht, also der crontab läuft trotzdem nicht :-(
 
A

Anonymous

Gast
Hacki_FCB schrieb:
Jedoch klappt das immer noch nicht, also der crontab läuft trotzdem nicht :-(
Setz mal die Ausführungsrechte auf dein Backup Script wenn noch nicht geschehen und füge als 2 Zeile am Anfang des Scriptes noch ein
Code:
PATH=/usr/bin:/usr/sbin:/sbin:/bin

in deiner Crontab nimmst du dann das sh auch noch raus.

Die erste Zeile in deiner Crontab #! /bin/sh stammt die von dir? nimm die mal raus, die gehört dort nicht hin. Die Inhalt der ganzen Crontab reicht.

Code:
30 23 * * 1-5  /root/skripte/backup.sh

robi
 
OP
H

Hacki_FCB

Newbie
Ausführungsrechte waren schon vregeben, habe sie ketzt aber auch nochmal auf 777 geändert.
Habe die PATH-Zeile eingetragen, das "sh" herausgenommen und die crontab sieht jetzt genau so aus wie du sie geschrieben hast.
Klappt trotzdem nicht ! :-(

Was mache ich falsch?!? :???:
 
A

Anonymous

Gast
Hacki_FCB schrieb:
und die crontab sieht jetzt genau so aus wie du sie geschrieben hast.
Klappt trotzdem nicht ! :-(
Dann könntest du ja noch gar nicht wissen das es nicht funktioniert :roll: :roll: :roll: , sondern erst heute Nacht oder hast du etwa die Systemuhr verstellt. Darauf reagiert cron zT recht seltsam.

ansonsten Cron-daemon prüfen ob er da ist
ps -efl | grep cron
prüfen ob root mails bekommen hat
mail
prüfen ob in der /var/log/messages Einträge von cron enthalten sind.

crontab -e hast du auch als root ausgeführt ?
crontab -l zeigt dich auch deinen Cron-Job an ?

robi
 
OP
H

Hacki_FCB

Newbie
Nein, habe natürlich die Uhrzeit in der crontab geändert...

Nach Aufruf von "ps -efl | grep cron" erscheint folgende Zeile:

0 R root 6549 4499 0 80 0 - 975 - 14:10 pts/1 00:00:00 grep --colour=auto cron

Kann ich leider nichts mit anfangen :???:

root hat keine Mails bekommen!!!

Und wie kann ich prüfen ob in der "/var/log/messages" Einträge von cron enthalten sind?

Deine beiden letzten Fragen kann ich mit "Ja" beantworten. Habe ihn mit root ausgeführt und er wird auch angezeigt...
 
A

Anonymous

Gast
Wie das aussieht läuft bei dir der ganze Cron Dienst nicht.

Entweder mit Yast irgendwo bei Runlevel den cron-Dienst aktivieren, oder als root von der Konsole aus. Die Datei heißt bei Suse /etc/rc.d/cron

Code:
insserv /etc/rc.d/cron
damit wird der Dienst dann immer automatisch beim hochfahren gestartet.

Code:
/etc/rc.d/cron start
damit würde der Dienst jetzt per Hand gestartet.

robi
 
OP
H

Hacki_FCB

Newbie
Ok, ich glaube dann habe ich den Fehler gefunden!
Bitte teert und federt mich jetzt nicht ^^ :schockiert:

Habe das die ganze Zeit mit einer Knoppix-DVD ausprobiert (da gibt es ja gar kein Yast).
Denke das es daran liegt, kann das sein?

Lade jetzt grad auch nochmal die Live-DVD von Suse herunter...

Das Skript läuft später auf einen DebianEtch-Server, muss ich da irgendwas besonderes noch zusätzlich beachten?!?
 
A

Anonymous

Gast
Hacki_FCB schrieb:
Das Skript läuft später auf einen DebianEtch-Server, muss ich da irgendwas besonderes noch zusätzlich beachten?!?

Na auf einer CD da läuft natürlich default kein Crondienst, für was auch.

Noch zu Beachten ???? fast nichts weiter :/ :/ :/ , außer das Script und das Verzeichnis in dem das Script abgelegt ist, sollte nur von root beschreibbar und ausführbar sein, sonst kann es jeder dahergelaufene User ändern und damit dann im System ausführen was er gerne möchte.

Sollte dein Script irgendwelche Ausgaben oder Fehlerausgaben machen, dann wirst du diese jedesmal per Mail erhalten, das kann bei täglichen Scripten schnell lästig werden, besser ist wenn dann wirklich nur Ausgaben kommen wenn das Script auf Fehler läuft. Sonst fällt mir auf die Schnell nicht weiter ein.

Vielleicht noch mal http://www.linuxhilfen.org/befehle/crontab.html vorbei schauen

robi
 
OP
H

Hacki_FCB

Newbie
Ok, dann werde ich es da noch einmal ausprobieren.

Vielen Dank für deine schnelle und kompetente Hilfe @robi!
THX :up:
 
Oben