Cronjob in der Shell erstellen (Server4You)

Lord_Icon

Member
Hallo,

wollte einen CronJob erstellen. Habe mir diesbezüglich auch schon ein paar Tut's bzw. manuells von Cronjob durchgelsen.

Theoretisch sollte folgende Eingabe funktionieren bzw. der Cronjob sollte erstellt werden.
Tut aber nicht.. warum ?? wo liegt der Fehler?

crontab -e */10****

if [ `ps ax | grep apache | grep -v "grep" | wc -l` == 0 ]
then
mail -s "APACHE TOT" info@meine_e-mail_addy.com < /dev/null
fi
 
Hast du geschaut, welcher Pfad angezeigt wird, wenn du crontab -e aufrufst?
Wahrscheinlich wir das ein tmp Pfad sein.

Schreibe einfach direkt in die "crontab" und rufe von dort aus dein Skriptchen auf.
 
hmm... also wenn ich dich jetzt richtig verstanden habe, soll ich erstmal ein cronjob anlegen, der leer ist. Diesen dann aufrufen und mit Daten füllen.

Wäre natürlich auch eine Möglichkeit. Nur wie bewerkstelle ich dies ??

Bei Eingabe von:
www:~ # crontab -e */10****

crontab: usage error: no arguments permitted after this option
 
Hm nein nicht ganz.
Es muesste schon eine Datei Namens "crontab" geben.

Hinter crontab kann man auch keine Zeiten eingeben. Das wird im crontab selber gemacht.
 
das ist richtig.. es gibt eine Datei, die crontab heißt.
Das ist ja die Datei, die den Cronjob anlegt.

Die Frage ist nur, wie ich erstmal eine leere Datei anlege,sodas ich diese dann nachträglich bearbeiten kann.


www:~ # crontab

crontab: usage error: file name must be specified for replace

usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
 
Es gibt einmal die Binaerdatei crontab und eventuell zusaetzlich noch die Textdatei crontab. In diese Textdatei schreibt man seine Crons.
 
Code:
crontab -e
-> Einfügen drücken!
*/10 * * * * /pfad-zu-deinem-script

Du kannst keine Anwendungen direkt in die Cron schreiben.
Erstelle einfach eine Datei in der dein Script steht und gib oben den pfad zu der Datei an. Ich hoffe ich habe dein Problem richtig erfasst..
 
Du kannst keine Anwendungen direkt in die Cron schreiben

ahh... oki
damit sind schon einige Fragen bezüglich: "warum geht das nicht" geklärt.

habe eine txt datei erstellt und geuploadet.

und in der Shell entsprechend eingehämmert:

Code:
www:~ # crontab -e */10**** /root/cronjob/apache_abfrage.txt

crontab: usage error: no arguments permitted after this option
usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)


Problem war allerdings,
-> Einfügen drücken!
habe ich gedrückt... ist allerdings nichts passiert... hat nur über die lautsprecher ein dumpfes >pung< gegegeben
 
ahh...

ok... du hast was wichtiges vergessen ^^

crontab -e <erst Enter drücken>
dann neues Fenster, wo ich mit >einfügen< dann den cronjob anlege
danach >esc< drücken (somit kommt man wieder aus den schreibmodus raus
und dann
:wq drücken (w=write // q=quite)


o.k. soweit alles klar...

nur fragt bzw sagt er mir dann

Code:
www:~ # crontab -e
crontab: installing new crontab
"/tmp/crontab.XXXXgGOJ0I":1: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? y

wenn ich y (was ja für yes stehen sollte) drücke, bearbeite ich die datei nochmal

wenn ich n drücke, kommt folgende "fehler"meldung ???

Code:
Do you want to retry the same edit? n
crontab: edits left in /tmp/crontab.XXXXgGOJ0I

was das dann ??? Warum zeicht er den Pfad tmp an ??
Dieser Pfad steht doch nur kurzfristig zur Verfügung... bei einen Restart des Servers sollte diese Datei wech sein...
 
Okay,

er sagt dir einfach nur das du einen syntax fehler in deinem script hast.
Bad Minute sagt das irgendwas mit den minuten nicht hinhaut.
 
boah.... 4 Tage für so n ollen Cronjob..... nu geht es aber...


hier ne Anleitung die hier genau so gleiche Probleme haben/hatten

Die Anleitung kann bis auf die Email Adresse 100%tig übernommen werden, wenn Ihr wissen wollt, wenn euch der Apache hängt bzw. nicht mehr läuft.


  • Legt eine Datei eurer Wahl an. In meinen Beispiel: apache_abfrage.txt (Der Inhalt steht unten)
  • Ladet diese Datei in ein x-Beliebiges Verzeichniss eurer Wahl: In mein Beispiel: /root/cronjob/
in der Shell Ebene folgendes eingeben
  • crontab -e <enter> (ein neues Fenster öffnet sich)
  • dort die <einfg> (einfügen) Taste drücken. Jetzt sind wir im Bearbeitungsmodus
  • */10 * * * * /root/cronjob/apache_abfrage.txt (darauf achten, das die letzten 4 Sterne jeweils ein Leerzeichen dazwischen haben)
  • dann <ESC> gefolgt von :wq (doppelpunkt+w+q)


Wenn alles richtig gemacht ist, sollte ... stehen
crontab: installing new crontab

Inhalt der apache_abfrage.txt (E-mail noch ändern)
Code:
if [ `ps ax | grep apache | grep -v "grep" | wc -l` == 0 ]
then
mail -s "APACHE TOT" info@deine_e-mail_addy.com < /dev/null
fi
 
achso....

der Cronjob selbst ist (zumindest bei s4y =>Linux) im Pfad

/var/spool/cron/tabs/ und dort in der Datei root

Solltet Ihr aber nicht rumspielen. Ich erwähne es nur, weil man dort theoretisch die 10 kurzfrist auf 1 setzten könnte (alle 1 min wird Script ausgeführt) und in der Shell
Code:
/etc/init.d/apache2 stop

1 min später SOLLTE eine Email vorliegen ^^

/etc/init.d/apache2 start

nicht vergessen... :D
 
@Lord_Icon danke für die tolle Cronjob Anleitung :D jetzt klappt auch bei mir
die Cronjob eingabe habe auch lange rumgemacht .
 
Back
Top