Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: waarom start mijn cron job niet?  (gelezen 3855 keer)

Offline jjge

  • Lid
waarom start mijn cron job niet?
« Gepost op: 2010/05/16, 20:15:01 »
Ik draai ubuntu server 9 en ik wil een cronjob draaien. ps ax laat zien dat cron loopt:
root@HP-server:~# ps ax | grep cron
  984 ?        Ss     0:00 cron
 6635 pts/0    S+     0:00 grep cron
In mijn crontab staat dit:
00 18  *   *   *     /bin/sh /root/copyall-except 2>&1>> /root/copy-all.log
Dus om 18:00 zou copyall-except moeten draaien en schrijven naar copy-all.log
In copyall-except staat o.m.:
echo " "
echo " "
echo " "
echo "copyall run d.d. `date`"
TMPDIR=`mktemp -d mntXXXXXX` &&
{
echo "`date` -- synchronizing share sysop"
[...]

dus hij zou in ieder geval _iets_ moeten schrijven. Doet-ie niet. En in de mail staat ook nix. Iemand nog een idee, waarom niet?

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: waarom start mijn cron job niet?
« Reactie #1 Gepost op: 2010/05/16, 20:27:30 »
De user waarvoor de crontab is ingesteld, heeft die wel de juiste rechten?
Ik neem aan dat het in de crontab van de user root moet...
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline jjge

  • Lid
Re: waarom start mijn cron job niet?
« Reactie #2 Gepost op: 2010/05/16, 20:49:34 »
Ja, de user is root. En als ik copyall-except gewoon onder de shell opstart, loopt-ie ook gewoon.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: waarom start mijn cron job niet?
« Reactie #3 Gepost op: 2010/05/16, 21:49:06 »
Oke, dan zou ik het niet zo weten. Misschien missen er variabelen op je PATH ? Gezien de cron het in een andere shell start dan jouw terminal. Dit geeft wel vaker problemen, maar een commando als echo moet het volgens mij altijd wel doen.

Je kan evt. in crontab "/bin/sh" weghalen.. Misschien gaat het goed? Ik zet dat er ook nooit voor....

En heb je bovenaan je script wel staan waardoor je script uitgevoerd moet worden?
Zoiets als: #!/bin/bash
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline jjge

  • Lid
Re: waarom start mijn cron job niet?
« Reactie #4 Gepost op: 2010/05/16, 22:31:59 »
Nou, ik heb ook geëxperimenteerd met env (onder de root shell) en dat vervolgens in de commandofile geplakt (met een paar wijzigingen, want het werkt niet helemaal zonder). Dan heb je dus in principe ALLE environmentvariabelen.

En die /bin/sh heb ik toegevoegd (zonder werkte het ook niet) in plaats van een regel #!/bin/bash voorin het commandoscript. Maar het werkt in geen van beide gevallen. En bovendien zou ik toch op zijn minst een foutmelding in mail verwachten, niet?

Offline ivo

  • Lid
Re: waarom start mijn cron job niet?
« Reactie #5 Gepost op: 2010/05/16, 22:48:12 »
Kun je in /var/log/syslog zien dat je cron entry wordt uitgevoerd?

Zoiets;

May 16 08:00:01 LT9 CRON[17905]: (root) CMD (/usr/sbin/ntpdate ntp.ubuntu.com | logger)
There are only 10 types of people in the world; those who understand binary and those who don't.

Offline jjge

  • Lid
Re: waarom start mijn cron job niet?
« Reactie #6 Gepost op: 2010/05/17, 11:20:49 »
Yep, en wel precies zoals je het zou verwachten:

May 16 18:00:01 HP-server CRON[4994]: (root) CMD (/bin/sh /root/copyall-except 2>&1>> /root/copy-all.log)

(één regel, uiteraard). Dus cron doet het, maar dan???

Offline markba

  • Lid
    • http://markbaaijens.nl/
Re: waarom start mijn cron job niet?
« Reactie #7 Gepost op: 2010/05/17, 12:57:22 »
Probeer eens rechtstreeks, dus vanuit je copy-all script te loggen ipv via crontab.

Achtergrond: ik ben wel eens rare, niet-verklaarbare én niet-reproduceerbare fouten tegengekomen in een script dat uitgevoerd werd via crontab. Het hield verband met allerlei output zoals 'echo' etc. Nadat ik het script volledig 'stil' had gemaakt, ging het goed.

Verder kun je beter je log plaatsen in /var/log, dit is de standaard.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: waarom start mijn cron job niet?
« Reactie #8 Gepost op: 2010/05/17, 13:05:32 »
Inderdaad. Trouwens een bash functie die ik wel eens gebruik:
log() {
  echo $(date +%d-%m\ %T)  -  $1
}
Dus ipv 'echo' gebruik je 'log'. Als je vervolgens alles naar een file wilt schrijven hoe je het script maar op 1 plek aan te passen ;)
log() {
  echo $(date +%d-%m\ %T)  -  $1 >> LOGFILE
}
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Scormen

  • Lid
    • LinuxOntdekt.Be
Re: waarom start mijn cron job niet?
« Reactie #9 Gepost op: 2010/05/17, 14:12:54 »
Maak er eens van:

00 18  *   *   *     sudo /bin/sh /root/copyall-except 2>&1>> /root/copy-all.log
Kris
Ubuntu gebruiker #18341 | Linux gebruiker #456955
· Mijn persoonlijke Linux blog

Offline rja

  • Lid
Re: waarom start mijn cron job niet?
« Reactie #10 Gepost op: 2010/05/17, 16:53:13 »
Waarom zet je /bin/sh voor je commando ?

Is je shell script wel uitvoerbaar ?

Ik zou het gewoon zo doen :

/root/copyall-except 2>&1>> /root/copy-all.log