[Cron] vreemde problemen bij uitvoeren vanuit cron

Pagina: 1
Acties:

  • krietjur
  • Registratie: Februari 2001
  • Laatst online: 07:57

krietjur

Where am I?

Topicstarter
1x per dag heb ik op een ubuntu server een simpel scriptje draaien om te checken op updates. Het vreemde is, dat wanneer het script vanuit de cron draait, het niet goed functioneert, en als ik het script handmatig draai wel.

Het gaat om dit script:

code:
1
apt-get -qq update && apt-get -sqq upgrade


Als ik dat gewoon draai, geeft dat keurig een overzichtje van aanwezige updates, mits die er zijn. Vanuit de cron krijg ik echter dit:
code:
1
2
3
Failed to fetch http://nl.archive.ubuntu.com/ubuntu/dists/hoary/Release.gpg  Could not connect to nl.archive.ubuntu.com:80 (82.211.81.138). - connect (111 Connection refused) [IP: 82.211.81.138 80]
Failed to fetch http://nl.archive.ubuntu.com/ubuntu/dists/hoary-updates/Release.gpg  Could not connect to nl.archive.ubuntu.com:80 (82.211.81.138). - connect (111 Connection refused) [IP: 82.211.81.138 80]
(...)


Het script draait dus wel, voert het commando uit maar tijdens het runnen van het script krijgt hij connection refused errors. Nou was eerst de gedachte, dat de ubuntu-server op het tijdstip dat de cronjob draait niet bereikbaar is, maar ook dat is niet het probleem. Als ik het script handmatig draai, vlak nadat het vanuit de cron misging, werkt het ook prima.

Al met al vind ik dit een nogal vreemde situatie en weet nou niet meer waar ik het probleem kan zoeken.. :?

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 01:09

The Eagle

I wear my sunglasses at night

Ik heb weinig tot geen verstand van cronjobs en alles wat daarmee samenhangt, en dat geldt ook voor mijn linux-kennis ;) .......maar waar ik aan zit te denken is een gebrek aan rechten. En of dat rechten op een netwerkverbinding of op een (temp)directory zijn weet ik niet...maar probeer de cron anders eens onder een andere (root) user te draien, als dat kan tenminste :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • krietjur
  • Registratie: Februari 2001
  • Laatst online: 07:57

krietjur

Where am I?

Topicstarter
De cronjob draait al als root.. was ik even vergeten te vermelden.. :)

  • krietjur
  • Registratie: Februari 2001
  • Laatst online: 07:57

krietjur

Where am I?

Topicstarter
*schopje*

Niemand een idee wat dit kan zijn? :?

  • Gum
  • Registratie: Augustus 2000
  • Laatst online: 29-12-2025

Gum

Cron jobs lopen onder de sh shell. Probeer je scripts eens uit te voeren met "/bin/sh scriptnaam" en kijk of het dan ook werkt.

Succes

Verwijderd

cron-apt is er gemaakt voor die dingen ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
apt-cache show cron-apt
Package: cron-apt
Priority: optional
Section: admin
Installed-Size: 84
Maintainer: Ola Lundqvist <opal@debian.org>
Architecture: all
Version: 0.3.0
Depends: apt, bash (>= 2.03-6), mailx, debianutils (>= 1.7)
Recommends: liblockfile1
Filename: pool/main/c/cron-apt/cron-apt_0.3.0_all.deb
Size: 19286
MD5sum: dfa49d0139ce5dabfba46b1beda8ac94
Description: automatic update of packages using apt-get
 Contains a tool that is run by a cron job at regular intervals. By default it
 just updates the package list and download new packages without installing.
 You can instruct it to run anything that you can do with apt-get
 (or aptitude).
 .
 It can optionally sends mail to the system administrator on errors, log
 to syslog or a separate log file.
 .
 Observe that this tool may be a security risk, so you should not set it
 to do more than necessary. Automatic upgrade of all packages is NOT
 recommended unless you are in full control of the package repository.

  • krietjur
  • Registratie: Februari 2001
  • Laatst online: 07:57

krietjur

Where am I?

Topicstarter
Even geen tijd gehad om er naar te kijken, maar heb vandaag de oplossing gevonden en wilde die toch nog even posten, mocht iemand ooit tegen hetzelfde probleem aanlopen.

Wanneer het script handmatig werd gestart, maakte het gebruik van de environment variabele http_proxy, zodat alles via de proxy naar buiten ging. Vanuit de cron was deze variabele er niet, en wilde de server dus rechtstreeks naar buiten connecten wat niet werd toegestaan door de firewall.
Heb aan mijn script het volgende toegevoegd, en nu werkt het prima:

code:
1
2
http_proxy="http://proxyadres:proxypoort"
export http_proxy


Iedereen bedankt voor het meedenken :)
Pagina: 1