Ptje Geplaatst: 22 mei 2006 Geplaatst: 22 mei 2006 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
mati Geplaatst: 22 mei 2006 Geplaatst: 22 mei 2006 Waarschijnlijk moet je de cron demon opstarten. Je kan kontroleren of het proces aanwezig is door: ps -aux | grep crond Gr Marcel Pli op DM800, VU+ DUO en DM8000 met 4xDVB-S2, Wave Frontier T90
Gast Geplaatst: 23 mei 2006 Geplaatst: 23 mei 2006 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.
Gast Geplaatst: 23 mei 2006 Geplaatst: 23 mei 2006 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.
Ptje Geplaatst: 23 mei 2006 Auteur Geplaatst: 23 mei 2006 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
Gast Geplaatst: 23 mei 2006 Geplaatst: 23 mei 2006 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.
Ptje Geplaatst: 23 mei 2006 Auteur Geplaatst: 23 mei 2006 Heb ik geprobeerd, maar er ontstaat geen logfile.
Aanbevolen berichten
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 accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen