Sziasztok!
Van egy bash shell scriptem, amely parancssorban lefut. A dolga csak annyi, hogy leállítja a squid-et, törli a disk cache-t, majd újra kreálja.
Viszont, ha crontab által időzítem a "/usr/sbin/squid3 -z" nem kreálja le a könyvtár struktúrát és természetesen a szervíz sem indul.
LOG-ban csak annyi van, hogy hát nincs meg a disk cache ... a szervíz kénytelen leállni.
Ha parancssorban service squid3 start kiadva, akkor meg lekreálja a disk cache-t, már csak azért is kipróbáltam. Szóval, ha menne crontab alatt, akkor úgy vélem kellene sikerülnie, a kettőből egynek.
Lehet az erdőtől nem látom a fát, vagy túl fáradt vagyok, mert kuglival sem tudtam használható találat kigurítani.
Van erről leírás, vagy csak a shell script kell igazítani, hogy az crontab alatt is lefusson, hiba nélkül.
#!/bin/bash
service squid3 stop
mv /vcache/squid /vcache/squid.old
mkdir /vcache/squid
chown proxy:proxy /vcache/squid/
/usr/sbin/squid3 -z
service squid3 start
rm -fr /vcache/squid.old
Hozzászólások
root-ként futtatod a szkriptet?
megkérdezhetem minek kell ez a skript? ha a hely miatt, a cache_dir direktívával tudod szabályozni squidconfból.
Na de ha mégis ragaszkodsz a szkripthez akkor csak simán töröld a mappa tartalmát:
#!/bin/bash
service squid3 stop
rm -fr /vcache/squid/*
/usr/sbin/squid3 -z
service squid3 start
Mivel ez chache szerintem nem kell annyira vigyáznod a tartalmára, mivel úgy is törlöd.
szerk:
esetleg
service squid3 start
helyett/etc/init.d/squid start
A hibaüzeneteket érdemes lenne kiírni egy fileba, hogy látszódik-e mi a gond, ha eddig nem tetted meg esetleg..
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
A root által futtatva a bash shell-ben a script lefut, azzal nincs is semmi gond. A root crontab-jában viszont produkálja a hibát ugyan az a script.
LOG-ot majd hétfőn csatolok.
A disk cache törlés azért van, mert egy idő után lelassul a squid, ha törlöm gyorsabb lesz.
<boríték>
a root shellváltozói között akad egy/több, ami súg a squidnek -- ezek a változók nem léteznek a cron által nyújtott mezitlábas környezetben, így a squid hülye marad
</boríték>
Ezt nem tudtam és nem gondoltam erre. Ez alapján el tudok indulni a megoldás felé.
A megoldás, a következő két sor hozzáadás volt a script-hez, így már csont nélkül teszi a dolgát, az adott időpontban.
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Köszönöm mindenkinek a segítségét!