Ga naar inhoud


Cronjob voert script niet uit


labyrint

Aanbevolen berichten

Hallo,

 

Ik heb een scriptje gemaakt om mijn hostnaam te updaten. Het probleem is dat hij niet uitgevoerd wordt door de cronjob.

 

Als ik hem handmatig start met ./dnsupdate.sh werkt het vlekkeloos.

 

Als ik hem invoer in crontab -e werkt het niet. Ik heb geen type-fout in de regel of in de benaming ( tig X gecontroleerd )

 

Mijn vraag is eigenlijk; kan er een reden zijn waarom het script niet automatisch aangesproken wordt door een verkeerde opmaak van bijvoorbeeld de tekst editor.

 

Ik gebruik meerdere scriptjes maar alleen deze wil niet lukken op automatisch uitvoeren.

 

Iemand een idee

 

Labyrint.

Link naar reactie
Delen op andere sites


  • Reacties 37
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Heb je op de eerste regel staan:

#!/bin/bash

 

Staat je volledige pad naar het script in de cron entry?

Verwijs je naar de binaries op de juiste manier? (Je pad bestaat niet of is anders tijdens het uitvoeren van een cronjob. Dus het kan heel goed wezen dat hij de binaries niet kan vinden...)

 

Wat staat er in je logfile?

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Ik heb inderdaad #!/bin/bash op de eerste regel staan. Ik heb zelfs al eens een ander werkend scriptje aangepast.

 

Ik kan in de log files niet echt iets vinden wat mij verteld over het uitvoeren van de cronjob.

 

Ik vindt het raar dat het script wel wordt gestart door ./ Je zou dan denken aan een typfout ergens in de crontab.

Link naar reactie
Delen op andere sites

Dan zou het handmatig starten al een probleem moeten opleveren wink en dat werkt wel.

 

Ik zou inderdaad even voor de log optie kiezen dus > /var/log/dyndns.log achter de cron opdrachtregel zetten.

 

Wat zie je eigenlijk in de /var/log/syslog staan? Daar zou je ook iets terug moeten kunnen vinden........

Pli Core Member

 

Link naar reactie
Delen op andere sites

Hoe ziet de regel eruit die in de crontab staat! Denk dat we eerst daarmee moeten beginnen.

 

Ik had pas ook zoiets dat een script in de crontab niet wilde werken en met de hand wel... kan er nu ff niet op komen waardoor het nou ook al weer kwam.

Link naar reactie
Delen op andere sites

Gast Erik-Jan

Een voorbeeld van de crontab bij mij staat onderaan (run't de bestanden in de genoemde directory elke 5 minuten)...

 

Let vooral op:

- Staan de exec rechten van het bestand goed?

- Wie is de eigenaar van het bestand?

- Begin het script met de shell (#!/bin/sh) Inclusie het path?

 

Erik-Jan

 

------------------------------

 

 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=iemand

HOME=/

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR

#sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * command to be executed

 

# run-parts

0,5,10,15,20,25,30,35,40,45,50,55 * * * * root run-parts /etc/cron.5min

 

Link naar reactie
Delen op andere sites

Origineel bericht van: Erik-Jan
# run-parts
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root run-parts /etc/cron.5min

Kan eenvoudiger:

*/5 * * * * root run-parts /etc/cron.5min

werkt ook smile .

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

In /var/log/syslog vind ik niets terug wat met dns zou kunnen rijmen.

 

Als ik in de cronjob de regel /var/log/dyndsn.log zet vind ik ook niets terug. Ook als ik met de hand het commando heb uitgevoerd komt er niets in een log bestand.

 

 

Onderstaand is mij niet echt duidelijk. De tijd en sterren wel maar wat er op volgt niet.

 

*/5 * * * * root run-parts /etc/cron.5min

Link naar reactie
Delen op andere sites

Gast Erik-Jan
Origineel bericht van: labyrint


Onderstaand is mij niet echt duidelijk. De tijd en sterren wel maar wat er op volgt niet.

*/5 * * * * root run-parts /etc/cron.5min


Ok, de tijd en sterren zijn duidelijk,
Hierna staat het 'commando' wat aangeeft dat hij als gebruiker 'root' de onderdelen in de directory '/etc/cron.5min' moet uitvoeren

Je kan ook meteen een commando geven:
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1


Ook kan het trouwens nog zijn dat SELinux nog het een en ander tegen houd (Doen dan ff een 'man 5 cron')

Erik-Jan
Link naar reactie
Delen op andere sites

Nou het gaat nog steeds niet lukken. Het zal wel een lullig iets zijn. Zo heb ik het gedaan.

 

Ik draai met Ubuntu 10.x de server versie. Ik heb via apt-get ipcheck opgehaald. Vervolgens het volgende scriptje gebruikt. Het script staat in /var/script

 

#!/bin/bash

#

USERNAME= mijn gebruikers naam

PASSWORD= mijn wachtwoord

HOSTNAME= mijn dns naam

cd /var/script/dyndns

if [ -f /var/script/dyndns/ipcheck.dat ]; then

ipcheck -r checkip.dyndns.org:8245 $USERNAME $PASSWORD $HOSTNAME

else

ipcheck --makedat -r checkip.dyndns.org:8245 $USERNAME $PASSWORD $HOSTNAME

fi

 

 

Als ik het script handmatig start update hij gewoon mijn hostnaam. Ik krijg in het mapje /var/script/dyndns/ drie files, ipcheck.dat, ipcheck.html en webip.out.

 

Als ik dit script door een cronjob wil laten uitvoeren lukt het niet. Ook niet als ik de map dyndns eerst leeg gooi.

 

Even voor diegene die er mee willen testen. Het script update niet het ip adres maar update jou account bij dyndns. Ik dacht dat jij binnen 35 dagen jou account een keer moet updaten.

Link naar reactie
Delen op andere sites

Hoe ziet je crontab entry eruit?

Wat zijn de rechten op /var/script en op /var/script/dyndns ?

Waar staat "ipcheck" ? (Het script/programma wat je aanroept.)

Zet eens het volledige pad voor "ipcheck". (Zoals ik eerder heb aangegeven...)

 

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

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...