Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
mam stworzony skrypt do czyszczenia cache squida;
#!/bin/bash /etc/init.d/squid3 stop && rm -rf /var/spool/squid3 && mkdir /var/spool/squid3 && chown proxy.proxy /var/spool/squid3 && squid3 -z && /etc/init.d/squid3 start
Jeśli wykonuję go z palca działa bez problemu. Gdy dodałem go do cron'a (crontab -e) wykonuje się tylko zatrzymanie squida. Aby skrypt zadziałał poprawnie musiałem usunąć &&.
Dlaczego się tak dzieje?
Offline
Bo tak działają skrypty? Dajesz kilka poleceń linijka pod linijką. Jak chcesz kilka poleceń w jednej linii dajesz &&. W skrypcie && jest zbędne, a czemu działa z palca, hmm nie wiem. Po prostu usuń, powinno działać i z palca i w cronie.
Ostatnio edytowany przez kamikaze (2010-12-23 10:09:45)
Offline
w cronie dawałem z && w jednej linijce i też nie działało
Offline
&& łączy dwa polecenia w ten sposób, iż kolejne wykona się tylko gdy pierwsze zakończy się sukcesem. Można stosować to w kilku linijkach oczywiście.
Osobiście zrezygnowałbym po prostu z nich. Jeśli zaś chcesz rozwiązać problem, przekieruj wyjście i wyjście błędu do jakiegoś pliku.
Nawiasem mówiąc wiesz, że squid nie zostanie uruchomiony ponownie, jeśli cokolwiek pójdzie nie tak? I nie wiem czy mkdir nie zwróci błędu jeśli dany katalog już istnieje (dobrze by było dać flagę -p).
Poza tym zamiast stosowania && w każdej linijce, można było dać set -e.
Offline
Strony: 1