Ga naar inhoud


[Pli] hulp gevraagd bij het maken van een cronjob


Ptje

Aanbevolen berichten

Hoi,

 

Is er iemand die me kan vertellen, wat ik fout doe, met het maken van een cronjob.

 

Ik heb Pli Emerald als image en wil wat dingen automatiseren middels een cronjob.

 

Ik log in met telnet en type:

-crontab -e

Dan kon ik met vi in een lege file terecht die aangemaakt is in var/spool/cron

Is dat de juiste plaats of moet ik die file na editten verplaatsen naar var/spool/cron/crontabs ? Dat is namelijk ook een directory die bestaat maar nog wel leeg is. Omdat cron die crontab zelf aanmaakte in var/spool/cron heb ik even gedacht dat, dat de juiste map was.

 

-crond

Echter, cron start wel op, maar mijn script, wat wel werkt, doet niks met cron. Weet iemand wat ik mogelijk fout doe ?

__________________

afz. Ptje

Link naar reactie
Delen op andere sites


Nog een mogelijke oorzaak: daemons als cron hebben niet altijd een volledig PATH.

Het verdient aanbeveling in geval van twijfel de commando's in je script hun volledig pad mee te geven.

Dus niet wget bla bla, maar /bin/wget bla bla.

Ik weet niet of dat op de Dreambox ook nodig is, maar het heeft mij al eens geholpen.

 

Greetz, Lion.

Link naar reactie
Delen op andere sites

Als je crontab -e gebruikt gaat alles goed (hoef je naderhand niets aan te wijzigen) De hamvraag is : Wat heb je ingevult ?

 

De cron syntax is :

 

Citaat:

MIN HOUR MDAY MON DOW COMMAND

 

Waar:

 

MIN Minuut 0-60

HOUR Uur [24-uur notatie] 0-23

MDAY Maanddag 1-31

MON Maand 1-12 of jan,feb,mar,apr ...

DOW Weekdag 0-6 of sun,mon,tue,wed,thu,fri,sat

COMMAND Commando om uit te voeren

*/ kan worden gebruikt om intervallen aan te geven

scheiding mogen spaties en/of tabs zijn

 

Vb:

 

Citaat:
5 * * * * echo 'I love my DB'

 

zal elk uur om 5 over het echo commando uitvoeren.

 

Citaat:
*/5 * * * * echo 'I love my DB'

 

zal om de 5 minuten het echo commando uitvoeren

 

Let idd op dat het environment (PATH etc.) waarschijnlijk NIET goed staat als er vanuit cron aangeroepen wordt. Zorg dus altijd dat je in je script je environment variabelen goed zet.

Link naar reactie
Delen op andere sites

Ik heb in var/bin een scriptje staan om mee te testen, als dat werkt pas ik script wel aan naar iets met meer inhoud, maar dat wil voor alsnog niet. Dat script heet " update.sh "

 

Ik mijn crontab staat " */5 * * * * /var/bin/update.sh " wat volgens mij moet zorgen, dat het script elke 5 minuten gestart word. Ik heb de crontabfile aangemaakt met crontab -e en staat in var/spool/cron Daar komt ie vanzelf in te staan. Ik vind het wel vreemd dat daar nog een map inzit die crontabs heet.

De file die ontstaan is heet " crontab.486 "

 

Ik kan cron starten door met de hand in telnet crond te typen. Ik krijg dan geen foutmeldingen, maar mijn script doet niks. Als ik onderstaande commando invoer, krijg ik toch een uitvoer, waarvan ik zou denken, dan cron draaid. Wat gaat er dan fout ? Of wat doe ik fout..............

 

~ > ps -aux | grep crond

251 root 544 S crond

2202 root 536 S crond

2205 root 424 S grep crond

 

afz. Ptje

Link naar reactie
Delen op andere sites

Verander het eens in :

 

*/5 * * * * /var/bin/update.sh 2>&1 >> /tmp/update.log

 

Hiermee zal je alle meldingen redirecten naar de file /tmp/update.log en kan je zien of het script idd wordt aangeroepen en of het foutmeldingen geeft.

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...