Toon posts:

crontab icm shellscript werkt niet goed

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een cronjob gemaakt met een klein shellscript die de cache van squid om de zoveel tijd leeggooit. Dat LIJKT te werken, dwz: hij leegt de cache map maar maakt daarna geen nieuwe mappenstructuur aan (met squid -z). Het werkt dus maar half dus.

Als ik dit shellscript zelf draai dan werkt het wel gewoon, alleen vanuit crontab niet.

Het script ziet er zo uit:

code:
1
2
3
4
5
#!/bin/sh
service squid stop
rm -r -f /mnt/ramdisk/squid/*
squid -z
service squid start


Zie ik iets over het hoofd?

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 19:31

TommyGun

Stik er maar in!

Run eens whereis squid en probeer vervolgens; (bijvoorbeeld)

/usr/sbin/squid -z

“In a world without walls and fences, who needs Windows and Gates".


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Wat zijn de rechten van de gebruiker onder wie de crontab uitgevoerd wordt?

Uberhaupt vind ik dit een rucksichtlose actie, het liefst zou ik binnen squid de cache gewoon legen. Nu heb je kans op imho kans op cache-fouten doordat er in de cache van de cache staat dat bestand x aangemaakt is, terwijl het niet meer bestaat. Misschien dat squid -z dit oplost, maar ik persoonlijk vind het niet echt elegant...

Of ik zou met find de bestanden eruit halen en deze verwijderen.

Maar mijn hoofdvraag blijft : Waarom wil je je caches leeggooien?
Het lijkt me dat je je cache gewoon goed moet instellen en dat het dan gewoon goed moet lopen. Handmatig caches leeggooien werkt afaik altijd slecht, je ondermijnt het hele caching mechanisme van squid...

Verwijderd

Topicstarter
Squid heeft geen ingebouwde functie om de cache te clearen.
Crontab draait onder root.
Er zit trouwens geen reden achter, ben gewoon aan het prutsen.

@TommyGun
Werkt helaasch niet

  • Reinstein
  • Registratie: Juni 2003
  • Laatst online: 03-12-2025

Reinstein

Half-Nul

en als je het script met de hand start, werkt het dan wel?

dan wel ff doen vanuit een willekeurige directory met: /path/to/cron/script

(zo kwam ik er eens achter dat het niet werkte omdat ik daar keurig een foutmelding kreeg)

[ Voor 28% gewijzigd door Reinstein op 21-07-2008 22:49 ]

Open source modeltrein besturings software


Verwijderd

Topicstarter
Reinstein schreef op maandag 21 juli 2008 @ 22:48:
en als je het script met de hand start, werkt het dan wel?

dan wel ff doen vanuit een willekeurige directory met: /path/to/cron/script

(zo kwam ik er eens achter dat het niet werkte omdat ik daar keurig een foutmelding kreeg)
Verwijderd schreef op maandag 21 juli 2008 @ 22:30:
Als ik dit shellscript zelf draai dan werkt het wel gewoon, alleen vanuit crontab niet.

  • roan
  • Registratie: December 2003
  • Niet online
Verwijderd schreef op maandag 21 juli 2008 @ 22:41:
Squid heeft geen ingebouwde functie om de cache te clearen.
Crontab draait onder root.
Er zit trouwens geen reden achter, ben gewoon aan het prutsen.

@TommyGun
Werkt helaasch niet
Probeer dan 'which squid'

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:52

Robtimus

me Robtimus no like you

En vervang dan meteen de service calls naar absolute paden. Relatieve paden en gebruik van $PATH werken vaak slecht in combinatie met crontab.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 22:51
Met Cron moet je rekening houden dat het je scripts laat draaien in een minimale environment. Paths e.d. zijn niet opgenomen hierin, je dient ze mee te geven of al je commando's met een absoluut pad gebruiken.

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


Verwijderd

Je kunt inderdaad gaan gissen wat het probleem is, maar je kunt ook gewoon output redirecten en de foutmeldingen bekijken... ;-)

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 20:16

CrankyGamerOG

Assumption is the mother.....

Verwijderd schreef op dinsdag 22 juli 2008 @ 09:06:
Je kunt inderdaad gaan gissen wat het probleem is, maar je kunt ook gewoon output redirecten en de foutmeldingen bekijken... ;-)
idd dus ff achter de cron regel "> /var/log/output.txt" oid zetten ;)
Zowieso is dat de beste tip die ik ooit van iemand heb gekregen , loggen, loggen en lezen van de logs, helpt altijd met het oplossen van problemen waar je tegenaan loopt.
En zoals Gert en daarboven aangeven : gebruik de volledige paden

dus

#!/bin/sh
/etc/init.d/squid stop
rm -r -f /mnt/ramdisk/squid/*
/usr/bin/squid -z       
/etc/init.d/squid start

***** ik weet niet of je squid in /usr/bin staat, maar je snapt het denk ik wel ***** O-)


of quick down dirty gewoon een functie in je script rammen ala :

#!/bin/sh
#Loggin functie
function log_tofile {

/etc/init.d/squid stop
rm -r -f /mnt/ramdisk/squid/*
/usr/bin/squid -z 
/etc/init.d/squid start

}

log_tofile 2>&1 | tee /var/log/cacheclearer.log



Dan pleurt ie "als het goed is" alles naar de /var/log/cacheclearer.log wat hij daadwerkelijk doet/gedaan heeft.

Tevens lijkt het mij handiger dat je dmv if statements een interactief stukje erin hangt, waar je dus nog echt even op YES oid moet rammen voor je daadwerkelijk die rm -rf uitvoert
(Jah lijkt op windows gedrag, maar ik vind het altijd beter imho 8) )

Maar daar heb je dan weer niks aan als het per cron uitgevoerd word (neem niet aan dat je elke 10 minuten(en dan ga ik uit van 10minuten) op yes wilt gaan duwen :D

[ Voor 82% gewijzigd door CrankyGamerOG op 22-07-2008 20:29 ]

KPN - Vodafone Ziggo Partner


Verwijderd

Topicstarter
Ok,

heb hem nu met volledig pad voor de squid start/stop etc gezet en hij gaat nu als een trein! 8)

Bedankt!

  • CrankyGamerOG
  • Registratie: Juni 2003
  • Laatst online: 20:16

CrankyGamerOG

Assumption is the mother.....

Verwijderd schreef op dinsdag 22 juli 2008 @ 21:22:
Ok,

heb hem nu met volledig pad voor de squid start/stop etc gezet en hij gaat nu als een trein! 8)

Bedankt!
ok dan :)

ben nieuwsgierig nu : wat was je volledige pad ? gewoon /usr/bin ?

KPN - Vodafone Ziggo Partner


Verwijderd

Topicstarter
/usr/sbin/

Maar die had ik al, het ging voornamelijk om de /etc/init.d/squid stop/start ipv service squid stop/start.

[ Voor 5% gewijzigd door Verwijderd op 22-07-2008 22:27 ]


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 22:51
CrankyGamerOG schreef op dinsdag 22 juli 2008 @ 22:07:
ben nieuwsgierig nu : wat was je volledige pad ? gewoon /usr/bin ?
kan je vragen op je eigen systeem met
whereis squid
CrankyGamerOG schreef op dinsdag 22 juli 2008 @ 20:13:
Zowieso is dat de beste tip die ik ooit van iemand heb gekregen , loggen, loggen en lezen van de logs, helpt altijd met het oplossen van problemen waar je tegenaan loopt.
Exactly! Plus dat je, zoals jij al aangeeft, moet weten hoe je moet loggen. (stderr forwarden naar stdout en dan met een pipe doorsturen is the way to go.)

[ Voor 46% gewijzigd door gertvdijk op 22-07-2008 22:29 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog

Pagina: 1