Skocz do zawartości

Crontab


ergoline

Rekomendowane odpowiedzi

Witam!

 

Czy jest możliwość, aby crontab wykonywał skrypt częściej niż co minutę? Interesowałoby mnie, aby skrypt był wykonywany co 10 sek.

Aktualny wpis w crontab:

* * * * * bash -x /serwer/skrypt

Wszystko działa na FC4 SERVER

 

Pozdrawiam...

 

P.S.

Jest możliwość zlikwidowania błędu "RFD-FC5: interrupt....."? Chodzi tutaj o modem Sagem F@st E4, czasami wyrzuca mi taki błąd i blokuje cały serwer....

Odnośnik do komentarza
Udostępnij na innych stronach

No co Wy? Dajesz mu same gwiazdki i powienien to trzepać cały czas.

 

cron dziala co 1minute, wiec nie trzepie caly czas ale co 1 minute

Odnośnik do komentarza
Udostępnij na innych stronach

@matlas: Odpalić 5 crontab-ów? Trochę mi się to nie podoba... Będzie duże obciążenie kompa ;/ Przynajmniej tak mi się wydaje, a sprzęt nie jest "zbyt nowoczesny" (PII 400MHz, 64RAM, 3,2GB). Ewentualnie opisz sposób jak to zrobić, aby wszystko było dobrze zsynchronizowane....

@broda: jak to uczynić z tą pętlą i sleep'em?

Odnośnik do komentarza
Udostępnij na innych stronach

Witam!

Niekończąca się pętla w bash to np

 

#!/bin/bash
while true; do
/serwer/skrypt
sleep 5
done

wtedy masz opóźnienie między zakończeniem poprzedniego wywołania skryptu, a następnym wywołaniem 5 sekund

 

Jeśli chcesz synchronizować wywołania z czasem systemowym i wywoływać co określony czas to musisz zrobić tak jak

proponuje matlas, czyli uruchomić 6 procesów w crontab, a w każdym dać na początku odpowiedno: bez sleep, sleep 10, sleep 20 itd....

 

Pozdrowienia, andrew

Odnośnik do komentarza
Udostępnij na innych stronach

w Twoim przypadku to będzie tak:

 

#!/bin/bash
while true; do

logerror=`cat /var/log/new.log|grep "blad" | wc -l |awk '{print $1}'`
if [ "$logerror" = "0" ]; then
exit 0
else
killall -9 proces
rm -fr /var/log/new.log
/usr/local/bin/proces
exit 0
fi

sleep 5s

done

 

wrzuć wywołanie tego skryptu poprostu w /etc/rc.local

 

będzie gitara, chyba prościej się nie da,

 

 

elo

Odnośnik do komentarza
Udostępnij na innych stronach

Coś nie umiem sobie z tym poradzić...

Zrobiłem 12 takich skryptów, zmieniając tylko sleep 5s, 10s, 15s, ..., 60s -> wrzuciłem do crontaba dla każdego skryptu "* * * * * bash -x /serwer/skrypt/1,2,3...12", ale widzę w logach, że skrypty uruchamiają się równocześnie co minutę...

 

Można prosić jakiś opis "dla opornych"?

Odnośnik do komentarza
Udostępnij na innych stronach

@Karlik: ale ja właśnie widzę, że wszystkie skrypty uruchamiają się jednocześnie - bez opóźnień... W /var/log/root widzę, że np. 20:38:07 lecą po kolei wszystkie skrypty (aż do 20:30:09 - tyle trwa wykonanie skryptów przez moją "maszynę"), a następne wykonanie skryptów jest dopiero o 20:39:07...

Czy to może tak tylko w logach wygląda, a w rzeczywistości skrypty są odpalane z opóźnieniem?

Skrypt wygląda dokładnie tak jak podał @broda 2 posty wyżej... (ze zmianą wartości sleep'a).

 

A może sleep wrzucić na początek skryptu, zamiast na koniec (zaraz pod #!/bin/bash), że crontab przy próbie wykonania widzi sleep - czeka, a dopiero po tym czasie wykonuje skrypt?

Odnośnik do komentarza
Udostępnij na innych stronach

Ehhh... no to się dogadaliśmy ;) Ten skrypt co podał broda po prostu odpala kolejny raz skrypt/proces po 5 sekundach od zakończenia poprzedniego (teoretycznie, nie sprawdzałem poprawności ;) ). No i nie jest on zbytnio do zastosowania w cronie ;)

Jak robisz cronem to dodaj skrypty, które dodajesz muszą mieć na początku (po tym includzie) sleep X, żeby odczekały z odpalaniem skryptu ileśtam sekund. Potem wystarczy tylko wywołać to co potrzebujesz i tyle.

Odnośnik do komentarza
Udostępnij na innych stronach

A może sleep wrzucić na początek skryptu, zamiast na koniec (zaraz pod #!/bin/bash), że crontab przy próbie wykonania widzi sleep - czeka, a dopiero po tym czasie wykonuje skrypt?

 

Przecież właśnie to Ci napisałem kilka postów wyżej.

Szkoda, że nie czytasz ze zrozumieniem.

 

Pozdrowienia, andrew

 

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież właśnie to Ci napisałem kilka postów wyżej.

Szkoda, że nie czytasz ze zrozumieniem.

 

Pozdrowienia, andrew

 

Tak napisałeś, ale czytając w pośpiechu nie zauważyłem... Niestety nie mam dużo czasu, aby siedzieć i sobie spokojnie czytać...

Ale wczoraj udało mi się to zrobić...

 

Pozdrawiam...

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...