Cron w konsolce #tutorial

Posted by

Często zachodzi potrzeba aby jakieś zadania na naszym serwerze zautomatyzować, albo muszą wywoływać się cyklicznie. Wykonywanie tych czynności to była by udręka i ponadto ciężko uruchamiać jakiś skrypt np. raz w tyg o godz. 10, więc potrzebujemy aby tą czynnośc wykonywał serwer automatycznie. Na ratunek przychodzi własnie Cron. Jest to aplikacja działająca w systemach z rodziny UNIX. Aby dodać jakieś zadanie do wykonywania cyklicznego musimy edytować tabele programu Cron:

cronetab -e

Potem dopisujemy na końcu pliku linijkę z czasem i zadaniem które ma zostać wykonane.

0 */6 * * 0,6 wget http://kubafilinger.pl/api >/dev/null 2>&1

W tym przypadku Cron będzie się uruchamiał co 6 godzin tylko w weekendy.

Czas

Czas jest podawany w dość specyficzny sposób:

* * * * * polecenie

Gdzie gwiazdki oznaczają kolejno: minuta godzina dzień miesiąc dzień_roboczy.

Bez większego zagłębiania się polecam użyć generatora.

Polecenie

W miejscu „polecenie” wywołujemy dowolne polecenie bash na które pozwalają nam uprawnienia, np.:

0 0 * * 1 wget http://kubafilinger.pl/api >/dev/null 2>&1

Czyli pobranie treści znajdujące się pod wskazanym adresem, a konkretnie chodzi o wywołanie skryptu znajdującego się pod wskazanym adesem. Cron wywołuje się w tym przypadku raz na tydzień w poniedziałek.

0 0 * * * mysqldump -u user -pPASSWORD database_name > /root/db.sql >/dev/null 2>&1

Codziennie ma się wykonywać kopia bazy danych i zapisywana do pliku db.sql.

>/dev/null 2>&1

>/dev/null 2>&1

> przekierowanie

/dev/null folder do ktorego trafione dane są niszczone

2 uchwyt dla błędu standardowego

> przekierowanie

& bez tego znaku, 1 ktora nastepuje po znku przekierowania byla by traktowana jako nazwa pliku

1 uchwyt dla wyjścia

Źródła i linki:

Cron generator

>/dev/null/ 2>&1

print

2 komentarze

    1. Dzięki za zainteresowanie i feedback 🙂
      Niestety to rozwiązanie, które podałeś nie działa na moim serwerze 🙁

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *