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

[DOCH NICHT gelöst] Auch bei mir startet cron einfach nicht

MiPl

Hacker
Ich habe schon ausgiebig die SuFu gequält, leider ohne Erfolg. Vielleicht habt Ihr ja noch ne Lösung.

Ich will mal wieder Daten sichern und das nach Möglichkeit einmal am Tag. Da drängt sich ein cron-job doch auf, der will aber nicht. Meine crontab (nicht root) sieht wie folgt aus:

#
#
#
#
#
#
#
#
#
#
#
#
#
PATH=/home/sternebingo-2/bin:/usr/local/bin:/usr/bin:/sbin:/usr/X11R6/bin:/usr/sbin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin
#
#export PATH
#
#
#
SHELL=/bin/sh
MAILTO=sternebingo-2
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
@daily echo "und cron läuft doch - nicht"
@daily /home/sternebingo-2/Skripte/Backup-Sternebingo.sh
#
#
#
#

(By the way: wie kriegt man in vi die Leerzeile weg?)

Und das aufgerufene Skript wie folgt:

#!/bin/sh -x





#################################
# Backups herstellen #
#################################
PATH=/home/sternebingo-2/bin:/usr/local/bin:/usr/bin:/sbin:/usr/X11R6/bin:/usr/sbin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin
#
export PATH
#
#
#
SHELL=/bin/sh
MAILTO=sternebingo-2
#
#
kdialog --title "Backup" --warningcontinuecancel "Backup von Sternebingo-2 soll \n ausgeführt werden..."
if [ $? = 0 ]; then
#
rsync -buri --itemize-changes /home/sternebingo-2/.kde/share/apps/kmail/* /home/sternebingo-2/BackUp´s/kmail
#
#
rsync -bui --itemize-changes /home/sternebingo-2/.kde/share/apps/kabc/* /home/sternebingo-2/BackUp´s/kabc
#
rsync -bui --itemize-changes /home/sternebingo-2/.kde/share/apps/korganizer/* /home/sternebingo-2/BackUp´s/korganizer
#
rsync -buri --itemize-changes /home/sternebingo-2/Bilder/* /home/sternebingo-2/BackUp´s/Bilder-ab-04-04-07
#
rsync -buri --itemize-changes /home/sternebingo-2/Matthias?Hopp/* /home/sternebingo-2/BackUp´s/Matthias\ Hopp

else
kdialog --error "Abbruch, durch Benutzer."
fi


Von Hand gestartet läuft es wunderbar, nicht jedoch über cron. Ich bekomme auch keine Fehleremail oder in /var/log/messages einen Hinweis. So als würde cron nicht laufen. (Wie kann man feststellen, ob cron läuft?

Seht Ihr einen Fehler?
 
A

Anonymous

Gast
MiPl schrieb:
Ich habe schon ausgiebig die SuFu gequält, leider ohne Erfolg. Vielleicht habt Ihr ja noch ne Lösung.
Lösung Nummer 1 damit es erst mal übersichtlich wird, im vi auf der Zeile die weg soll "'ESC'dd" (also ESC und dann 2 mal kleines d) dann ist sie weg
http://www.linux-club.de/faq/Text_editieren_mit_vi
Code:
vimtutor de
auf der Konsole absetzen, das hilft :wink:

MiPI schrieb:
kdialog --title "Backup" --warningcontinuecancel "Backup von Sternebingo-2 soll \n ausgeführt werden..."
if [ $? = 0 ]; then
........
Seht Ihr einen Fehler?
hier ist ein ganz dicker enthalten, mal abgesehen das cron in Verbindung mit interaktiven Programmen Quatsch ist, dein Cronjob hat keinerlei Hinweise auf welchem X-Server er denn kdialog anzeigen soll, und ganz nebenbei das sowas von diesem X-Server ja dann auch erst noch explizid erlaubt werden müsste. Also bricht kdialog mit Fehler ab und if [ $? = 0 ] ist im Cronjob hier immer 1 und der then-Zweig wird hier nie ausgeführt.

robi
 
OP
M

MiPl

Hacker
Aha, vielen Dank.

Ich habe die Kdialog-Sache gelöscht und zum probieren von @daily auf z. B. 45 20 * * * gewechselt, doch es tut sich immer noch nichts.

Keine Email, keine Message in /var/log/messages.

Gibt´s noch weitere Möglichkeiten?

Danke.

Gruß Michael
 
OP
M

MiPl

Hacker
habe gerade mal den Befehl cron eingegeben und siehe da, das Skript wurde ausgeführt. Demnach scheint cron nicht standardmäßig zu laufen!?

Ich habe den Runlevel geprüft und bin in Runlevel 5. Dann habe ich in /etc/init.d/rc5.d nachgesehen und dort steht:

K11cron -> ../cron
S11cron -> ../cron
und natürlich noch andere Zeilen.

Aber in dem übergeordneten Verzeichnis existiert kein Ordner /cron sondern nur eine Datei cron:

-rwxr--r-- 1 root root 0 Datum cron

mit der Dateigröße 0!

ist das denn so ok? Wie prüfe ich, ob cron läuft. Wie kann ich cron automatisch starten lassen?

Danke für Eure Hilfe.

Michael
 

regexer

Advanced Hacker
MiPl schrieb:
Aber in dem übergeordneten Verzeichnis existiert kein Ordner /cron sondern nur eine Datei cron:
Das ist soweit OK. Ein solcher link kann sowohl auf eine Datei als auch ein Verzeichnis zeigen.

-rwxr--r-- 1 root root 0 Datum cron

mit der Dateigröße 0!

ist das denn so ok?
Nein, /etc/init.d/cron sollte ein Shellscript sein.
Wie prüfe ich, ob cron läuft.
Code:
ps -ef | grep -v grep | grep cron
 
OP
M

MiPl

Hacker
Also, ein Shellskript ist in jedem Fall nicht enthalten. Gibts da ne Anregung, wo ich das passende herbekomme (Google, SuFu?).

Wenn ich den Befehl

ps -ef | grep -v grep | grep cron

eingebe kommt sowohl als normaler Nutzer als auch als su nichts.

Ich werd mich mal auf die Suche nach einem Cron-Skript machen. Vielleicht habt Ihr aber auch eine Quelle parat.

Danke.
 
OP
M

MiPl

Hacker
Auch der Befehl

rccron status

"normal" oder als su liefert kein Ergebnis. Auch nicht nach rccron start.

???
 
OP
M

MiPl

Hacker
Hab die Lösung gefunden:

Cron deinstalliert und neu aufgespielt. Jetzt funktioniert es auch mit

ps -ef | grep -v grep | grep cron
rccron status
rccron start
rccron stop

Gruß Michael
 
OP
M

MiPl

Hacker
Hab mich wohl zu früh gefreut.

Cron läuft zwar, aber das Skript wurde nur einmal ausgeführt. Seitdem nie wieder! Auch das stoppen und wieder starten von cron liefert keine Lösung. Habt Ihr da noch ne Idee?

ps -ef | grep -v grep | grep cron
liefert als su und user:
root 4306 1 0 11:39 ? 00:00:00 /usr/sbin/cron

Danke Euch.

Gruß
Michael
 
Guckt halt in /var/log/messages ob cron überhaupt Bescheid gibt, dass es jetzt (d.h. zum entsprechenden Zeitpunkt) einen Job startet..
 

regexer

Advanced Hacker
MiPl schrieb:
Cron läuft zwar, aber das Skript wurde nur einmal ausgeführt. Seitdem nie wieder! Auch das stoppen und wieder starten von cron liefert keine Lösung. Habt Ihr da noch ne Idee?
Wie sieht der entsprechende crontab-Eintrag aus?
 
OP
M

MiPl

Hacker
Also in /var/log/messages steht:

Jul 18 07:54:47 linux-nud7 /usr/sbin/cron[3772]: (CRON) STARTUP (V5.0)

und in der Prozeßtabelle ps -ef:

root 3772 1 0 07:54 ? 00:00:00 /usr/sbin/cron

Michael
 

Leviathan

Hacker
Beispielzeile:
rsync -bui --itemize-changes /home/sternebingo-2/.kde/share/apps/kabc/* /home/sternebingo-2/BackUp´s/kabc

Die kannste in /etc/cron.d/[unterordner] reinschmeissen

wenn das aber in der crontabs /var/spool ... steht dann musste ne Zeit vorgeben

Also z.B.

0 6 * * * rsync -bui --itemize-changes /home/sternebingo-2/.kde/share/apps/kabc/* /home/sternebingo-2/BackUp´s/kabc
 
OP
M

MiPl

Hacker
Das kann eigentlich nicht sein, denn gemäß man 5 crontab:

These special time specification "nicknames" are supported, which
replace the 5 initial time and date fields, and are prefixed by the '@'
character:
@reboot : Run once, at startup.
@yearly : Run once a year, ie. "0 0 1 1 *".
@annually : Run once a year, ie. "0 0 1 1 *".
@monthly : Run once a month, ie. "0 0 1 * *".
@weekly : Run once a week, ie. "0 0 * * 0".
@daily : Run once a day, ie. "0 0 * * *".
@hourly : Run once an hour, ie. "0 * * * *".

sind diese Wörter vordefiniert.
 
OP
M

MiPl

Hacker
Und ich will es ja gerade nicht zu einem bestimmten Zeitpunkt laufen haben, sonder täglich, da ich den Rechner nicht immer zum gleichen Zeitpunkt aktiv habe!!
 
Oben