kolejność wykonywania skryptów/programów - cron i rc.local

Tutaj można zadać pytanie, jeśli Linuksa widzi się pierwszy raz w życiu ;)
00marcinek00
Sędziwy Jeż
Sędziwy Jeż
Posty: 31
Rejestracja: 29 mar 2007, 22:14
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

kolejność wykonywania skryptów/programów - cron i rc.local

Post autor: 00marcinek00 »

Witam

Chciałbym się was zapytać, jaka jest kolejność wykonywania skryptów/programów/poleceń które są dodane w plikach rc.local (uruchamianie programów przy starcie systemu) oraz crontab (określone wykonywanie poleceń itp). Bo wiem że rcX.d mają różne priorytety/level uruchamiania przy starcie a nie wiem jakie priorytety mają właśnie crontab i rc.local, nie wiem który pierwszy kolejności zadziała. Chciałbym żeby crontab co jakiś czas zapisywał ustawienia iptables a rc.local żeby przywracał ustawienia iptables przy starcie. Bo nie wiem czy nie będzie w jakiś sposób kolidować ze sobą np: za wcześnie zapisze iptables do pliku (puste tabele i reguły) a potem to wszystko przywróci ponownie :)
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Odp: kolejność wykonywania skryptów/programów - cron i rc.local

Post autor: Dwimenor »

Cron wykonuje polecenia w określonych odstępach czasu (co minutę, co godzinę, co godzinę i co minutę i tak dalej)
Plik /etc/rc.local wykonywany jest jako ostatni w sekwencji bootowania systemu. Czyli już po zainicjowaniu crona.
Może się zdarzyć, że wskoczy zapisane w cronie polecenie wykona się przed rc.local, aczkolwiek jest to mało prawdopodobne. Możesz się jednak przed tym ustrzec, sprawdzając najpierw czy reguły iptables nie są puste. Jeżeli są, to odczekaj 10 sekund i sprawdź ponownie.
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
00marcinek00
Sędziwy Jeż
Sędziwy Jeż
Posty: 31
Rejestracja: 29 mar 2007, 22:14
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: kolejność wykonywania skryptów/programów - cron i rc.local

Post autor: 00marcinek00 »

Wiem co to jest i jak działa cron :) Tylko właśnie nie wiem który pierwszy się wykona (cron bedzie działać dalej w zależności od ustawionych czasów). Czyli tak jak piszesz to cron jest pierwszy a potem rc.local jeśli chodzi o kolejność. Więc pozostaje zrobić test, 2 programy które zapiszą do pliku tesktowego z dokładną datą i co wykonało polcenie czy cron czy rc.local.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Odp: kolejność wykonywania skryptów/programów - cron i rc.local

Post autor: ethanak »

00marcinek00 pisze:Więc pozostaje zrobić test, 2 programy które zapiszą do pliku tesktowego z dokładną datą i co wykonało polcenie czy cron czy rc.local.
Nic to nie da. To czy wykona się pierwsze polecenie z rc.local czy z crona to absolutny przypadek. Jeśli chcesz mieć pewność, musisz określić w jakiś sposób czy wykonało się polecenie z rc.local, czyli w cronie skrypt w stylu (w pseudojęzyku):

Kod: Zaznacz cały

if reguły_są_puste then
   nie_rób_nic
else
   zapisz_reguły
Jeśli chcesz aby reguły zostały na pewno zapisane, dopisz coś co je zapisuje do rc.local (po ustawieniu reguł).
Кто жопой родился, чижиком не помрёт
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Odp: kolejność wykonywania skryptów/programów - cron i rc.local

Post autor: Dwimenor »

Nie, nie rozumiesz jak działa cron.
Zadania z crona nie wykonują się podczas uruchamiania systemu. One wykonują się w zadanym przez użytkownika momencie. Jeżeli po włączeniu crona, a przed odpaleniem rc.local, wypadnie ten "zadany moment" to zadanie z crona zostanie wykonane. Ale rc.local nie będzie czekać aż cron się wykona. Obie rzeczy wykonają się równolegle w przypadku kiedy czas ich wykonywania zachodziłby na siebie.
Aczkolwiek taka sytuacja jest mało prawdopodobna. Jeżeli jednak się obawiasz, że cron ci zrzuci puste reguły iptables, to możesz przed dokonaniem tego sprawdzać, czy te reguły nie są proste.
Albo robić jak na człowieka przystało:
1. Reguły firewalla ładowane są przy starcie systemu z /etc/rc.local
2. Reguły w /etc/rc.local są aktualizowane w czasie rebootowania (runlevel 6) lub wyłączania system (runlevel 0). Wystarczy dopisać odpowiednie skrypty do /etc/rc.0 i /etc/rc.6 (o ile mnie pamięć nie myli co do nazw plików/katalogów, bo siedzę w bibliotece na nie-bootowalnym z usb kompie). Wtedy nie będzie problemu z kolizją z cronem
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
00marcinek00
Sędziwy Jeż
Sędziwy Jeż
Posty: 31
Rejestracja: 29 mar 2007, 22:14
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: kolejność wykonywania skryptów/programów - cron i rc.local

Post autor: 00marcinek00 »

Może i nie rozumiem jak działa cron, kłócić się nie będę ale jednak Cron wywoła to "pierwsze polecenie". Cóż, będę musiał pomyśleć nad jakimś programikiem który będzie ładnie "zarządzał" iptables lub zainteresuje się tymi katalogami które uruchamiają w zależności od priotytetu ustawionego

P.S.

tak po za tematem dla innych żeby nie było komplikacji, iptables ma za zadanie "trzymać" na bierząco adresy ip osób "niepowołanych" zapisywać do pliku i ładować
ODPOWIEDZ

Wróć do „Przedszkole Linuksa”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 19 gości