Cronjob unter Unix!

Guten Tag,

ich will mir einen Cronjob unter Unix anlegen. Zum anlegen eines Cronjobs habe ich mich erkundigt und verstanden wie es geht.

Auf dem Server laufen aber mehrere Cronjobs und meine eigentliche Frage ist: Was passiert mit den Cronjobs wenn ich einen neuen anlege? Sind sie von dem neuen unabhängig?

wenn ich crontab -l mache steht dort:

crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXABCdEf installed on Fri Mar 13 10:00:00 2009)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/01 15:00:00 vixie Exp $)
\* \* \* \* \* /opt/master\_ip
0 20 \* \* \* /opt/master\_only /home/myserver/cronjob/datei1.pl
6 10 \* \* \* /opt/master\_only /usr/bin/perl /home/myserver/cronjob/datei anup.pl
0 11 \* \* \* /opt/master\_only /home/myserver/cronjob/datei2.pl

wenn ich also folgendes ausführe:

crontab -e
i
00 \* \* \* wget /domain/ordner/ordner/script.php -O bla.txt

ist es egal oder?

Und meine zweite Frage. Kann ich einen bestehenden Cronjob editieren? Oder gehts nur löschen und dann neu erstellen?

Danke im Voraus!

Hallo R159,

ich will mir einen Cronjob unter Unix anlegen.

Auf dem Server laufen aber mehrere Cronjobs und meine
eigentliche Frage ist: Was passiert mit den Cronjobs wenn ich
einen neuen anlege? Sind sie von dem neuen unabhängig?

Jeder Cronjob startet zu seinem Termin und erledigt seine Aufgabe. Da hat er normalerweise mit den anderen nichts zu tun, ist also „unabhängig“, wenn Du das darunter verstehst. Natürlich könnte ich einen cronjob anlegen, der die Ergebnisse eines zweiten cronjobs verarbeitet, das wäre dann nicht mehr so unabhängig aber meiner Meinung nach auch etwas ungünstig.

wenn ich also folgendes ausführe:

crontab -e
i
00 * * * wget /domain/ordner/ordner/script.php -O bla.txt

ist es egal oder?

Was heisst, „es ist egal“? Der Job wird zu jeder vollen Stunde mit seinen Parametern ausgeführt.

Und meine zweite Frage. Kann ich einen bestehenden Cronjob
editieren? Oder gehts nur löschen und dann neu erstellen?

Warum solltest Du einen bestehenden Eintrag nicht editieren können? Zumal ja löschen und dann neu eintragen auf das gleiche hinauslaufen würde. Also tapfer crontab -e ausgeführt :wink:

Viele Grüße
Marvin

wenn ich also folgendes ausführe:

crontab -e
i
00 * * * wget /domain/ordner/ordner/script.php -O bla.txt

ist es egal oder?

Es ist insofern egal, als das Ergebnis voraussichtlich nicht das gewünschte sein wird. Zunächst mal fehlt zw. Minute und Stunde ein Leerzeichen
0 0 * * * wget […], zweitens verlangt wget zwingend einen gültigen (wenn auch nicht vollqualifizierten) URL. Also wenn, dann so (ohne führendes Slash)
0 0 * * * wget domain/ordner/ordner/script.php

Und meine zweite Frage. Kann ich einen bestehenden Cronjob
editieren? Oder gehts nur löschen und dann neu erstellen?

Du kannst einstellen, welchen Editor Crontab verwendet. Dabei kann es je nach System unterschiedliche Wege geben, üblicherweise sollte aber der Weg über eine Umgebungsvariable immer gangbar sein:
export EDITOR=leafpad
oder
export EDITOR=/usr/bin/leafpad
öffnet beim nächsten „crontab -e“ die crontab in deinem neuen Lieblingseditor ‚leafpad‘ in dem du dann auch Änderungen vornehmen und speichern kannst. Wie du die Umgebungsvariable dauerhaft setzt, ist wieder von deinem System abhängig, ich würd’s als erstes mal über die ~/.bashrc versuchen.

HTH

P.S.:
In der Crontab immer mit vollqualifizierten Dateinamen arbeiten. Also

0 0 * * * /usr/bin/ wget domain/ordner/ordner/script.php -O ~/ bla.txt

Gruß

danke an euch beide für die schnellen antworten! jetzt weiss ich was ich wissen wollte…danke nochmals!

Hallo,

Warum solltest Du einen bestehenden Eintrag nicht editieren
können? Zumal ja löschen und dann neu eintragen auf das
gleiche hinauslaufen würde. Also tapfer crontab -e ausgeführt
:wink:

Und bevor ehemalige Windows-Nutzer auf die Idee kommen: man muss nach dem Editieren weder den Rechner neu starten noch den crond.

Gruß,

Sebastian