Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

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

Auteur Topic: Update script werkt gedeeltelijk vanuit crontab  (gelezen 4146 keer)

master45

  • Gast
Update script werkt gedeeltelijk vanuit crontab
« Gepost op: 2007/11/22, 00:13:17 »
Ubuntu 7.10 server

Hallo
Ik heb een update script draaien die elk uur iets gaat downloaden, uitpakken en kijkt of er een update nodig is.
Nu werkt het script uitstekend als ik als root ingelogd ben en het handmatig start, maar als ik dit script via crontab laat uitvoeren gaat het script alleen de file downloaden en voor de rest gebeurt er niets.

Ik dacht zelf dat het iets met rechten te doen had en heb er sudo voorgezet in crontab maar dit geeft geen verschil.

Weet iemand hier raad mee?

Bij voorbaat hartelijk dank

Master45

Update script werkt gedeeltelijk vanuit crontab
« Reactie #1 Gepost op: 2007/11/22, 14:30:07 »
Als je sudo in een cron script gebruikt werkt dat inderdaad niet omdat sudo de eerste keer om een wachtwoord vraagt.
Je kan het volgende proberen:

  sudo visudo

En voeg dan de volgende regel toe:

pietje    ALL=(ALL) NOPASSWD:ALL

Waarbij pietje jouw eigen gebruikersnaam is.

De NOPASSWD optie zorgt ervoor dat sudo niet meer om een wachtwoord vraagt (is dus minder veilig).

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Update script werkt gedeeltelijk vanuit crontab
« Reactie #2 Gepost op: 2007/11/22, 15:28:39 »
Wat is dit een rare oplossing zeg.
Je gaat de complete veiligheid van sudo weggooien omdat je een scriptje uit wil voeren?
Dan kan niet goed zijn.

Wat je beter kan doen:
Zet het in /etc/crontab dan kan je gewoon dat script direct als root uitvoeren.

master45

  • Gast
Update script werkt gedeeltelijk vanuit crontab
« Reactie #3 Gepost op: 2007/11/24, 19:43:55 »
Hallo bedankt voor jullie hulp

Ik heb geprobeerd het script in /etc/crontab te kopieeren maar dit werkt niet omdat er al een file in staat genaamd crontab vervolgens heb ik het in /etc/cron.hourly gekopieerd maar nog steeds hetzelde probleem met de rechten.
Het update script heb ik op 755 staan

Met mijn eigen groepsnaam krijg ik dus vooraan in het script : operation not permitted en permission denied.

Met root acces gaat dus alles in het script wel goed

Mijn probleem is dus dat crontab dit script niet met root acces kan draaien.

Zijn hier nog meer oplossingen voor?

B.v.h.d.

Master45

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Update script werkt gedeeltelijk vanuit crontab
« Reactie #4 Gepost op: 2007/11/24, 19:59:39 »
Wat staat er dan precies in je update script?

De inhoud van /etc/crontab:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
Hier kan je toch gewoon jouw script onder zetten? Je kan ook aangeven dat het als root gedraaid moet worden.

master45

  • Gast
Update script werkt gedeeltelijk vanuit crontab
« Reactie #5 Gepost op: 2007/11/26, 19:20:33 »
Hier het script wat ik elk uur wil draaien:
#! /bin/bash
SATAN="/tmp/satan.tar.gz"
SATANBACK="/tmp/satan.old"
DIRECTORY="/var/keys"
date
if [ -e /tmp/satan ]; then
rm -rf /tmp/satan
fi
if [ ! -e /var/keys ]; then
mkdir /var/keys
fi
wget h**p://k*yupd*ter.ascofun.cc/satan.tar.gz -O /tmp/satan.tar.gz
if [ $SATAN -nt $SATANBACK ] ; then
mkdir /tmp/satan
tar -xzf /tmp/satan.tar.gz -C /tmp/satan/
cd /tmp/satan/var/keys
mv -f SoftCam.Key /var/keys/SoftCam.Key
mv -f AutoRoll.Key /var/keys/AutoRoll.Key
mv -f tps.au /var/keys/tps.au
cd /tmp
rm -rf /tmp/satan/*
rm -rf /tmp/satan
mv -f /tmp/satan.tar.gz /tmp/satan.old
rm -rf /tmp/satan.tar.gz
echo "key-update klaar!."
else
echo "Geen nieuwere keys beschikbaar."
fi
exit
Ik heb het script keyupdater.sh genoemd en staat normaal in /var/etc
Ik heb nu verschillende mogelijkheden geprobeerd maar ik krijgt het niet voor elkaar dat het automatisch elk uur voor 100% uitvoerd.

Ik draai dus met Ubuntu 7.10 server

B.v.h.d. master45

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Update script werkt gedeeltelijk vanuit crontab
« Reactie #6 Gepost op: 2007/11/26, 19:26:06 »
Kan je het script tussen [ code] [ /code] tags plaatsen? Dat leest een stuk makkelijker.
Wel de spaties weghalen uit de tags.

Waarom het niet werkt komt denk ik door de echo commando's. Er is geen terminal beschikbaar waar die tekst heen gestuurd moet worden.

Zie ook hier:
http://forum.ubuntu-nl.org/topic/18626
en de linkjes in dat topic.