Problem z cron'em
|
demeo |
Dodano 24-07-2009 12:47
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Witam
Od dłuższego czasu nęka mnie pewien problem dotyczący crona, otóż po starcie urządzenia cron nie wykonuje poprawnie zadań ustawionych czasowo. Wygląda to w taki sposób, że w logach wszystko jest ok i pokazane że pliki się wykonały, lecz niestety się nie wykonują - brak wyników ich działania! Natomiast jak zrestartuje crona ręcznie (z konsoli) to wszystkie skrypty ustawione czasowo wykonują się poprawnie!
Z góry dzięki za wszelkie rady i porady.
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 24-07-2009 17:14
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Podałeś pełne ścieżki do programów przy wywołaniu z crona?
|
|
|
|
demeo |
Dodano 28-07-2009 10:02
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Cytat obsy napisał/a:
Podałeś pełne ścieżki do programów przy wywołaniu z crona?
Owszem podałem pełne ścieżki, cron odpala kilka skryptów w bashu. W tych skryptach też użylem pełnych ścieżek do plików.
--
Pozdrawiam
Demeo
|
|
|
|
demeo |
Dodano 31-07-2009 14:21
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Podtrzymując temat i szukając rozwiązania, moj plik /etc/crontabs/root wygląda następująco:
root@OpenWrt:~# cat /etc/crontabs/root
*/1 * * * * /sd/skrypty_rrdtool/make_update_load
*/2 * * * * /sd/skrypty_rrdtool/dane/obrobka
*/5 * * * * /sd/skrypty_rrdtool/make_graph_1h
0 * * * * /sd/skrypty_rrdtool/make_graph_24h
20 0 * * * /sd/skrypty_rrdtool/make_graph_1w
40 0 * * * /sd/skrypty_rrdtool/make_graph_1m
0 1 * * * /sd/skrypty_rrdtool/make_graph_1y
Natomiast cron jest uruchamiany przez poniższy skrypt:
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=99
start () {
mkdir -p /var/spool/cron
[ -L /var/spool/cron/crontabs ] || ln -s /etc/crontabs /var/spool/cron/crontabs
/usr/sbin/crond -c /etc/crontabs/
}
stop() {
killall -9 crond
}
Może ktoś spostrzegawczy zauważy jakąś nieprawidłowość czemu cron po starcie routera nie działa prawidłowo, zaczyna działać dopiero jak się go ręcznie zrestartuje.
Z góry dziękuję za odpowiedzi.
--
pozdrawiam,
Paweł Trofimiuk
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 31-07-2009 14:56
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Zakładałbym że jest problem z kartą SD w momencie kiedy sie to odpala. Gdzie/kiedy masz montowanie SD?
Edytowany przez obsy dnia 31-07-2009 14:56
|
|
|
|
demeo |
Dodano 04-08-2009 14:08
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
stworzyłem prosty skrypt /root/tesicik
#!/bin/sh
touch /root/CRON_DZIALA
dodałem go do crona
w logach widzę:
Aug 4 14:01:01 OpenWrt cron.err crond[559]: USER root pid 579 cmd /root/tescik
Ale niestety skrypt nie jest wykonywany, czyli odpada przyczyna związana z używaniem karty sd.
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 05-08-2009 20:43
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Twój przykład działa.
Jan 1 00:01:01 OpenWrt cron.err crond[898]: USER root pid 972 cmd /root/tescik
Jan 1 00:02:01 OpenWrt cron.err crond[898]: USER root pid 977 cmd /root/tescik
Jan 1 00:03:01 OpenWrt cron.err crond[898]: USER root pid 982 cmd /root/tescik
Jan 1 00:04:01 OpenWrt cron.err crond[898]: USER root pid 986 cmd /root/tescik
Jak widać ładnie po starcie systemu.
Głupie, ale:
- czy /root/tescik ma prawa do wykonania?
- jak dodajesz zadanie do crona? mam nadzieję że przez crontab -e
|
|
|
|
demeo |
Dodano 05-08-2009 22:08
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Cytat obsy napisał/a:
Twój przykład działa.
Jan 1 00:01:01 OpenWrt cron.err crond[898]: USER root pid 972 cmd /root/tescik
Jan 1 00:02:01 OpenWrt cron.err crond[898]: USER root pid 977 cmd /root/tescik
Jan 1 00:03:01 OpenWrt cron.err crond[898]: USER root pid 982 cmd /root/tescik
Jan 1 00:04:01 OpenWrt cron.err crond[898]: USER root pid 986 cmd /root/tescik
Jak widać ładnie po starcie systemu.
Głupie, ale:
- czy /root/tescik ma prawa do wykonania?
- jak dodajesz zadanie do crona? mam nadzieję że przez crontab -e
- owszem /root/tescik ma prawa do wykonwyania
- zadania do crona dodaje poprzez edycje pliku /etc/crontabs/root za pomoca edytora nano
Najbardziej zastanawiajacy jest fak, ze cron dopiero dziala poprawnie po wykonaniu polecenia
/etc/init.d/cron stop
/etc/init.d/cron start
Po normalnym uruchomieniu routera cron dziala nie poprawnie - tak jak opisalem powyzej, czyli w logach widac ze uruchamia skrypty lecz one nie sa w rzeczywistosci wykonywane.
Edytowany przez demeo dnia 05-08-2009 22:11
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 05-08-2009 22:14
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
to dodaj przez crontab -e.
Jak dodasz z palca (nano) może nie widzieć tych zmian.
|
|
|
|
demeo |
Dodano 06-08-2009 12:42
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Cytat obsy napisał/a:
to dodaj przez crontab -e.
Jak dodasz z palca (nano) może nie widzieć tych zmian.
Nie sądzę by to był problem edytora którym dodaje się wpisy, bo przecież edytor zawsze można zmienić za pomocą
W każdym razie dodałem ponowqnie wpisy poprzez crontab -e i dalej występuje ten sam problem.
--
Pozdrawiam
Demeo
|
|
|
|
obsy |
Dodano 06-08-2009 23:11
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
No to masz coś namieszane w konfiguracji. Dokładnie Twój przykład działa na świeżej instalacji.
PS. Ma znaczenie. Jak robisz to przez crontab -e to sam cron jest powiadamiany że plik został zmieniony (sam edytor nie ma znaczenia, to tylko edycja). Jak robisz ręcznie edycje pliku - po prostu cron nie ma pojęcia ze mu się plik zmienił.
|
|
|
|
demeo |
Dodano 11-08-2009 14:02
|
User
Posty: 111
Dołączył: 30/12/2007 19:16
|
Cytat obsy napisał/a:
No to masz coś namieszane w konfiguracji. Dokładnie Twój przykład działa na świeżej instalacji.
PS. Ma znaczenie. Jak robisz to przez crontab -e to sam cron jest powiadamiany że plik został zmieniony (sam edytor nie ma znaczenia, to tylko edycja). Jak robisz ręcznie edycje pliku - po prostu cron nie ma pojęcia ze mu się plik zmienił.
Owszem, ale po każdej edycji pliku robie ręczny restart crona.
Co jeszcze odpowiada za konfigurację crona?
--
Pozdrawiam
Demeo
|
|
|