Cron: Różnice pomiędzy wersjami
(.bashrc na .bash_profile) |
|||
(Nie pokazano 16 wersji utworzonych przez 6 użytkowników) | |||
Linia 1: | Linia 1: | ||
''Cron'' to specjalny program, odpowiedzialny za cykliczne wykonywanie zadań. Każdy użytkownik posiada specjalną tabelę ''crontab'', w której może ustawić jakie programy i kiedy powinny zostać automatycznie uruchomione. | ''Cron'' to specjalny program, odpowiedzialny za cykliczne wykonywanie zadań. Każdy użytkownik posiada specjalną tabelę ''crontab'', w której może ustawić jakie programy i kiedy powinny zostać automatycznie uruchomione. | ||
− | === | + | === DevilWeb === |
+ | Po zalogowaniu się do [[DevilWEB|panelu administracyjnego]] konfiguracja Cron znajduje się w zakładce ''Zadania cron''. Po kliknięciu przycisku ''Edytuj'' pokaże się tabela cron. Z prawej strony wpisu jest przycisk do włączenia bądź wyłączenia danego wpisu oraz przycisk do usunięcia wpisu. | ||
− | + | [[Plik:cron list.png|1135px|class=mydevilscreen]] | |
− | + | Aby dodać wpis należy kliknąć ''+ Dodaj zadanie Cron'' i wypełnić pola na stronie. Na przykład skrypt <code>/usr/home/''login''/skrypt.sh</code> będzie wykonywany o 5:30 co niedzielę. | |
− | + | ||
− | + | [[Plik:Cron.png|1135px|class=mydevilscreen]] | |
− | + | ||
+ | === Linia poleceń === | ||
+ | |||
+ | Zarządzanie tabelami cron jest również możliwe z linii poleceń komendą <code>crontab</code>: | ||
+ | * <code>crontab -l</code> - pokazuje obecną tabelę cron, | ||
+ | * <code>crontab -e</code> - edytuje tabelę, | ||
+ | * <code>crontab -r</code> - usuwa tabelę. | ||
+ | Po wykonaniu polecenia <code>crontab -e</code> tabela otwierana jest w domyślnym edytorze. Aby zmienić domyślny edytor nano na inny należy zmienić zmienną środowiskową <code>EDITOR</code>. Na przykład zmiana domyślnego edytora na mcedit odbywa się przez polecenie: <code>echo 'export EDITOR=mcedit' >> $HOME/.bash_profile && source $HOME/.bash_profile</code>. Dopisane <code>export EDITOR=mcedit</code> do pliku <code class="directory">/usr/home/''login''/.bash_profile</code> spowoduje trwałą zmianę domyślnego edytora. | ||
==== Przykłady ==== | ==== Przykłady ==== | ||
− | Poniżej prezentujemy przykładową tabelę cron. Należy zwrócić szczególną uwagę na | + | Poniżej prezentujemy przykładową tabelę cron. Należy zwrócić szczególną uwagę na zmienną <code>PATH</code> - sprawia ona, że praca z cronem staje się wygodniejsza. |
# Używaj /usr/local/bin/bash do wywoływania komend. Ta linijka nie jest wymagana do działania crontab. | # Używaj /usr/local/bin/bash do wywoływania komend. Ta linijka nie jest wymagana do działania crontab. | ||
SHELL=/usr/local/bin/bash | SHELL=/usr/local/bin/bash | ||
− | |||
− | |||
− | |||
# Użyj następującej wartości zmiennej PATH. Bez tego musimy podawać pełne ścieżki do binarek (przykładowo, | # Użyj następującej wartości zmiennej PATH. Bez tego musimy podawać pełne ścieżki do binarek (przykładowo, | ||
Linia 33: | Linia 38: | ||
# Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 | # Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 | ||
0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@''domena'' | 0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@''domena'' | ||
+ | |||
+ | # Wysyłane maila (codziennie o północy) | ||
+ | 0 0 * * * echo -e "Subject: Tytuł maila\n$x" | /usr/sbin/sendmail adres@email | ||
# Inne przykłady | # Inne przykłady | ||
Linia 51: | Linia 59: | ||
@hourly echo "Minęła kolejna godzina!"; # - odpowiednik zapisu "0 * * * *" | @hourly echo "Minęła kolejna godzina!"; # - odpowiednik zapisu "0 * * * *" | ||
− | [[ | + | [[Kategoria:Ustawienia i Informacje]] |
Aktualna wersja na dzień 19:50, 10 sie 2023
Cron to specjalny program, odpowiedzialny za cykliczne wykonywanie zadań. Każdy użytkownik posiada specjalną tabelę crontab, w której może ustawić jakie programy i kiedy powinny zostać automatycznie uruchomione.
DevilWeb
Po zalogowaniu się do panelu administracyjnego konfiguracja Cron znajduje się w zakładce Zadania cron. Po kliknięciu przycisku Edytuj pokaże się tabela cron. Z prawej strony wpisu jest przycisk do włączenia bądź wyłączenia danego wpisu oraz przycisk do usunięcia wpisu.
Aby dodać wpis należy kliknąć + Dodaj zadanie Cron i wypełnić pola na stronie. Na przykład skrypt /usr/home/login/skrypt.sh
będzie wykonywany o 5:30 co niedzielę.
Linia poleceń
Zarządzanie tabelami cron jest również możliwe z linii poleceń komendą crontab
:
-
crontab -l
- pokazuje obecną tabelę cron, -
crontab -e
- edytuje tabelę, -
crontab -r
- usuwa tabelę.
Po wykonaniu polecenia crontab -e
tabela otwierana jest w domyślnym edytorze. Aby zmienić domyślny edytor nano na inny należy zmienić zmienną środowiskową EDITOR
. Na przykład zmiana domyślnego edytora na mcedit odbywa się przez polecenie: echo 'export EDITOR=mcedit' >> $HOME/.bash_profile && source $HOME/.bash_profile
. Dopisane export EDITOR=mcedit
do pliku /usr/home/login/.bash_profile
spowoduje trwałą zmianę domyślnego edytora.
Przykłady
Poniżej prezentujemy przykładową tabelę cron. Należy zwrócić szczególną uwagę na zmienną PATH
- sprawia ona, że praca z cronem staje się wygodniejsza.
# Używaj /usr/local/bin/bash do wywoływania komend. Ta linijka nie jest wymagana do działania crontab. SHELL=/usr/local/bin/bash # Użyj następującej wartości zmiennej PATH. Bez tego musimy podawać pełne ścieżki do binarek (przykładowo, # zamiast python musimy podać /usr/local/bin/python, etc. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:login/bin # Uruchamiaj się 5 minut po północy, codziennie 5 0 * * * /usr/home/login/bin/daily.job >> /usr/home/login/tmp/out 2>&1 # Uruchamiaj się o 14:15 pierwszego dnia każdego miesiąca -- wyjście jest # przesyłane na adres e-mail 15 14 1 * * /usr/home/login/bin/monthly # Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@domena # Wysyłane maila (codziennie o północy) 0 0 * * * echo -e "Subject: Tytuł maila\n$x" | /usr/sbin/sendmail adres@email # Inne przykłady 23 0-23/2 * * * echo "uruchamiaj 23 min po polnocy, 2, 4 ..., codziennie" 5 4 * * sun echo "Uruchamiaj się 5 po 4 w niedziele" 0 10 * * 1,3 echo "Uruchamiaj się w każdy poniedzialek i srode o 10.00" */2 * * * * echo "Uruchamiaj się co 2 minuty" #lub z wykorzystaniem zapisu słownego z wykorzystaniem znaku "@" tzn.: @reboot echo "System uruchomił się!"; # - polecenie uruchamiane każdorazowo po uruchomieniu systemu @yearly echo "Minął kolejny rok!"; # - odpowiednik zapisu "0 0 1 1 * @annually echo "Minął kolejny rok!"; # - jak wyżej @monthly echo "Minął kolejny miesiąc!"; # - odpowiednik zapisu "0 0 1 * *" @weekly echo "Minął kolejny tydzień!"; # - odpowiednik zapisu "0 0 * * 0" @daily echo "Minął kolejny dzień!"; # - odpowiednik zapisu "0 0 * * *" @midnight echo "Minął kolejny dzień!"; # - jak wyżej @hourly echo "Minęła kolejna godzina!"; # - odpowiednik zapisu "0 * * * *"