Avatar billede Max Novice
14. november 2006 - 17:36 Der er 13 kommentarer og
1 løsning

Cron job kører ikke

Hej alle.

Jeg har aldrig prøvet at lave et cron-job før, og har derfor læst mig frem til de mest basale ting. Men noget virker ikke. Systemet som det køres på er en modificeret Redhat Enterprise (ESX 3).

Systemets eneste bruger (ved godt, at det er dårlig stil) er root, så derfor retter jeg i filen /etc/crontab. Indholdet af den ser således ud:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0-59 * * * * root run-parts /etc/cron.backup

Jeg har oprettet et dir der hedder /etc/cron.backup, hvori der ligger en fil, der hedder telltime, som er blevet gjort eksekverbar. Filens indhold (dette er bare en test) er flg.:

echo `date +%H.%M.%S`

Når jeg i shell'en (Bash) skriver crontab -l viser den linjen:

1-59 * * * * echo `root date +%H.%M.%S`

Hvordan kan det nu være? Noget der også undrer mig, er at der overhovedet ingenting sker. Jeg har sikret mig, at crond kører og har prøvet at genstarte den efter jeg har rettet i crontab og mit script (service crond restart).

Det er helt sikkert noget meget basalt jeg har misforstået / overset, men jeg kan ikke komme på hvad det kan være.

Håber I kan hjælpe.

Mvh.
Avatar billede lap Nybegynder
14. november 2006 - 18:06 #1
når du skal tilføje i cron er det nemmeste at skrive "crontab -e" - så kan du redigere brugeren cron (den bruger som er logget ind).

Du kan godt glemme "root" - skriv i din cron-linie:
* * * * * /path-til-date/date +%H.%M.%S

så kan du få det til at virke
Avatar billede dragox05 Nybegynder
14. november 2006 - 20:50 #2
/var/spool/cron
Den stig bruger jeg hvis det driller

Ang /etc/cron.d osv
prøv tjek om cron overhoved kører:
service crond status
Avatar billede Max Novice
15. november 2006 - 08:47 #3
Ok. Mht. at glemme "root", så har jeg læst (næsten alle dokumenter jeg har set) at man skal angive som hvilken bruger programmet skal afvikles som. Hvis man ser på de run-parts, der er oprettet i crontab-filen i forvejen, er der også angivet "root".

Der skulle vel ikke være et problem i, at oprette en ny run-parts til mit eget dir (/etc/cron.backup)?

/var/spool/cron, er det ikke kun for crontabs, som ikke er den generelle crontab? Det jeg mener er; hvis man skal have noget til at køre, hvis en bestemt bruger er logget på, bruger man dem i /var/spool/cron (crontab -e), men hvis man skal have noget til at køre uanset hvilken bruger der er logget ind (eller slet ingen), retter man /etc/crontab (crontab -e (som root))?

Grunden til, at jeg ikke bruger crontab -e er, at den som standard bruger vi editoren. Ved godt man kan ændre det med export VISUAL=nano eller hvad man nu ellers har af editor, men jeg kan ikke gøre det permanent.

Som tidligere nævnt, har jeg sikret mig, at crond kører. Jeg ved ikke om det er nødvendigt at genstarte servicen efter at have rettet i crontab-filen, men det er også gjort.

Mvh.
Avatar billede lap Nybegynder
15. november 2006 - 15:59 #4
hvad der laves med "cron -e" kræver ikke, at den pågældende bruger er logget på.
Du kan sagtens permanent lave om til nano - f.eks. i /etc/profile eller lignende.

Jeg ville aldrig lægge ting i den del af cron, men jeg er måske bare gammeldags - i hvert fald eksisterer cron -e på alle de mange unix-varianter jeg har været på. Største problem med cron er (og har altid været), at der skal være fuld path til programkald, da PATH kun er sat begrænset.

selve din kommando er vel fejlbehæftet - echo `root date +%H.%M.%S` - kommandoen root findes ikke - og med ` er det en shell-escape du laver. Kan du køre hele kommandoen i hånden?

Kommer der ikke mail til root omkring fejl i cron?
Avatar billede Max Novice
16. november 2006 - 13:52 #5
Hej igen.
Ok. bruger crontab -e nu.
Har også lavet selve kommandoen med fuld sti. Virker heller ikke. Det med root i kommandoen ved jeg godt var forkert, men det var noget den selv havde oprettet.
I stedet for kommandoen:

echo `root date +%H.%M.%S`

.. ser kommandoen i script-filen nu således ud:

/bin/date +%H.%M.%S

.. og indholdet af crontab-filen sådan her:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
*/1 * * * * root run-parts /etc/cron.backup

Fik et "råd" om at lave en crontab-fil i mit ~ dir (altså /root) og så få crond til at køre den i stedet for (med crontab /root/crontab). Dette virkede heller ikke, så jeg har sat den til at afvikle /etc/crontab igen (på samme måde som med /root/crontab).

Jeg er nu tilbage ved, at alle synes det ser rigtigt ud, men det alligevel ikke virker. :(

Mht. fejl via mail, så er systemet ikke sat op til (så vidt jeg er orienteret) at modtage mails fra systemet. Det bliver givetvis skrevet til en logfil, men jeg er ikke klar over hvilken.

Mvh.
Avatar billede Max Novice
16. november 2006 - 13:54 #6
Kigger lige på, om der skulle være noget med system-mails og evt. hvilken logfil, der benyttes.
Avatar billede lap Nybegynder
16. november 2006 - 22:53 #7
mail sendes til root - det står der jo ovenfor.... (MAILTO=root) :-)

problemet er rent faktisk date-kommandoen - jeg vender tilbage
Avatar billede Max Novice
17. november 2006 - 09:15 #8
Hehe, ja, det kan jeg godt se. Der lader bare ikke til at være et progam (som "mail" f.eks.) til at læse det med. Jeg er ikke så velbevandret i konsol-email-klienter, det eneste jeg har brugt mere end een gang er pine (kører normalt Slackware).
Avatar billede Max Novice
20. november 2006 - 12:45 #9
Hmmm.. Der er tilsyneladende ingenting at se system-mails med. Ingen fetchmail eller pine.. :-/
Avatar billede lap Nybegynder
20. november 2006 - 16:29 #10
kommandoen "mail" ?
Avatar billede Max Novice
21. november 2006 - 11:25 #11
Heller ikke.. :-/
Avatar billede Max Novice
22. november 2006 - 16:50 #12
Har fundet problemet. Vender lige tilbage.
Avatar billede Max Novice
24. november 2006 - 10:09 #13
Ok. Det drejede sig om et forkert antal felter pr. linje. Den dokumentation jeg havde fået fat på, beskrev det som om hver linje havde 7 felter, og ikke 6. Felterne skulle efter sigende være:
1) minut
2) time
3) md. dag
4) måned
5) ugedag
6) bruger
7) kommando
.. hvilket stemmer overens med linjerne ovenfor. Men når jeg fjerner felt 6 fra linjerne, så virker det. Det underlige er bare, at den kører cron.hourly, etc. som den skal, på trods af, at de linjer faktisk har 7 felter.
Avatar billede Max Novice
08. marts 2007 - 10:06 #14
Ok, jeg giver mig selv points for denne, da den har stået åben for længe nu, og problemet faktisk er løst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester