spezieller cronjob
spezieller cronjob
Hallo community,
ich bin was Linuxprogrammierung angeht leider nicht sehr bewandert.
Grundsätzlich möchte ich einen cronjob schreiben, der alle paar Minuten ein script ausführt.
Wäre klasse wenn jemand gute Tutorials oder docus kennt.
bis denn,
Don
ich bin was Linuxprogrammierung angeht leider nicht sehr bewandert.
Grundsätzlich möchte ich einen cronjob schreiben, der alle paar Minuten ein script ausführt.
Wäre klasse wenn jemand gute Tutorials oder docus kennt.
bis denn,
Don
Re: spezieller cronjob
einfach mal nach crontab googeln. Sollte alles erklären...
Re: spezieller cronjob
Code: Alles auswählen
man 5 crontab
Später, mit mehr Erfahrung, falls cron durch fcron ersetzt würde:
Code: Alles auswählen
man 5 fcrontab
Some Examples of Lines Based on Elapsed System Up Time
# Get our mails every 30 minutes
@ 30 getmails -all
# make some security tests every 48 hours of system up time,
# force a mail to be sent to root even if there is no output
@mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: spezieller cronjob
Hallo,
also ich habe mal in die file /etc/crontab folgende Zeile eingefügt:
*/1 * * * * root perl /home/daniel/Desktop/test.pl
Wollte jetzt damit testweise jede Minute das script test.pl ausführen - das script ist ein ganz einfaches testscript.
Der cronjob funktioniert aber noch nicht wirklich, bekomme keine prints auf der Konsole.
Muss ich den cronjob jetzt noch irgendwie aktivieren?
also ich habe mal in die file /etc/crontab folgende Zeile eingefügt:
*/1 * * * * root perl /home/daniel/Desktop/test.pl
Code: Alles auswählen
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
*/1 * * * * root perl /home/daniel/Desktop/test.pl
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Code: Alles auswählen
#!/usr/bin/perl
use strict;
print "Halli Hallo!\n";
Muss ich den cronjob jetzt noch irgendwie aktivieren?
Re: spezieller cronjob
Auf welcher Console sollte der Output denn erscheinen. Ausgaben von cron jobs werden dem jeweiligen Nutzer als mail zugstellt.Don83 hat geschrieben:Der cronjob funktioniert aber noch nicht wirklich, bekomme keine prints auf der Konsole.
Zu cron gibt es bei UbuntuUsers eine recht nette Seite
http://wiki.ubuntuusers.de/Cron
MfG GoKi
:wq
:wq
Re: spezieller cronjob
Und wie soll der dir auf irgendner Konsole was ausgeben? Der weiß doch nicht welche... Es sollte eigentlich an root ne Mail mit der ausgabe geschickt werden. In /var/log/messages sollte sich was dazu finden, obs geklappt hat...
Re: spezieller cronjob
In var messages gabs keine Meldung - aber ok, klar verstehe das ganze jetzt schon. Also danke euch allen für die Hilfe, ist gar nicht mal so kompliziert wie ich befürchtet hatte.
Re: spezieller cronjob
Wenn das Skript in einem Benutzerverzeichnis liegt, sollte es auch als der User ausgefuehrt werden.
Man sollte nur privilegiert Skripte ausfuehren wenn es nicht anders geht.
Darueber hinaus sollte man nicht direkt die /etc/crontab dazu benutzen.
Normalerweise kann jeder Benutzer inklusive root eine eigene Crontab haben.
Dazu fuehrt man einfach des Befehl crontab mit passenden Schaltern aus.
In der benutzereigenen Crontab ist dann auch die Angabe des auszufuhrenden Benutzers wegzulassen.
*/1 ist gleichbedeutend mit "jede Minute" was * gleichkommt. Also wuerde deine Zeile in deiner eigenen Crontab so aussehen:
Die Stufennotation in der Crontab macht nur Sinn wenn man regelmaeßige aber lange Zeitdefinitionen kurz notieren mochte.
Man sollte nur privilegiert Skripte ausfuehren wenn es nicht anders geht.
Darueber hinaus sollte man nicht direkt die /etc/crontab dazu benutzen.
Normalerweise kann jeder Benutzer inklusive root eine eigene Crontab haben.
Dazu fuehrt man einfach des Befehl crontab mit passenden Schaltern aus.
Code: Alles auswählen
crontab -l # zeigt die Crontab des aktuellen Benutzer an
crontab -e # Editiert die Crontab des aktuellen Benutzers mit dem in der Variable $EDITOR definierten Editor
*/1 ist gleichbedeutend mit "jede Minute" was * gleichkommt. Also wuerde deine Zeile in deiner eigenen Crontab so aussehen:
Code: Alles auswählen
* * * * * perl /home/daniel/Desktop/test.pl
Gruß AlexFor example, ``0-23/2'' can be used in the hours field to specify
command execution every other hour (the alternative in the V7 standard is
``0,2,4,6,8,10,12,14,16,18,20,22''). Steps are also permitted after an
asterisk, so if you want to say ``every two hours'', just use ``*/2''.