Strona zgodnie z Polityką plików cookies wykorzystuje pojedynczy plik cookie do poprawnego działania licznika odwiedzin.
Możesz określić warunki przechowywania lub dostępu do plików cookies w ustawieniach Twojej przeglądarki.

 Centrum Usług Sieciowych 
 
Komputerowy system sterowania urządzeniami
 
 
Ostatnia aktualizacja: 04.08.2015
Wstęp
Sprzęt
Oprogramowanie
Instalacja
AP i DHCP
ProFTPd
Firewall
Apache z PHP
MySQL
Dźwięk
Obsługa LPT
Moduł 230V
LPT przez WWW
Cron
Muzyka  NEW
Budzik WWW
Termometr
Automatyzacja
Kontrola dostępu
Co dalej?
Cron

Cron to maszynka do wykonywania zadań w określonym czasie. Przyda się do włączania i wyłączania grzejników, jako budzik itp. W katalogu /var/spool/cron/crontabs/ znajdują się pliki użytkowników, a w nich definicje wykonywania poleceń o danej porze. Aktualnie mamy tam tylko plik root z kilkoma linijkami. Pewne zadania wymagające praw root'a, należy wykonywać przez sudo. Użytkownik apache ma już własne wpisy w /etc/sudoers, więc właśnie tego użytkownika użyjemy dla własnych potrzeb. Tworzymy więc plik apache:

touch /var/spool/cron/crontabs/apache

Do pliku wpisujemy definicje o poniższej składni:

* * * * * polecenie

Pierwsze 5 pól określa czas wykonania, kolejne to polecenie do wykonania (jeżeli polecenie zwraca jakieś dane trzeba je gdzieś skierować, np. >/dev/null). Pola dotyczące czasu odpowiadają za minuty, godziny, dni miesiąca, miesiące i dni tygodnia. Znak * oznacza dowolną wartość, więc w przypadku

* * * * * polecenie

polecenie będzie wykonywane co minutę.

30 * * * * polecenie

Tu wykonanie nastąpi zawsze, gdy licznik minut na zegarze wskaże 30, czyli co godzinę.

45 16 * * * polecenie

Wykonanie codziennie o 16:45. Dodatkowo można wprowadzać kolejne wartości po przecinku:

0 2,3,5,9 * * * polecenie

Wykonanie nastąpi codziennie o godzinie 2,3,5 i 9. Można też używać przedziałów:

0 10-14 * * * polecenie

Wykonanie nastąpi codziennie o 10, 11, 12, 13 i 14. Mamy jeszcze do dyspozycji znak /:

*/5 * * * * polecenie

Wykonanie nastąpi co 5 minut. Po aktualizacji pliku /var/spool/cron/crontabs/apache trzeba dać znać cronowi, że wprowadziliśmy zmiany. W tym celu tworzymy plik cron.update, a w nim nazwę użytkownika, którego plik zaktualizowaliśmy:

echo "apache" >/var/spool/cron/crontabs/cron.update

Zatwierdzenie zmian nastąpi w ciągu minuty, a plik cron.update sam zniknie.

Przykład:
a) dodajemy pętlę, która włączy urządzenie podpięte do pinu 0 lpt codziennie o 1 w nocy i wyłączy o 4:

echo "0 1 * * * sudo lpt setbit 0" >/var/spool/cron/crontabs/apache
echo "0 4 * * * sudo lpt clrbit 0" >>/var/spool/cron/crontabs/apache
echo "apache" >/var/spool/cron/crontabs/cron.update

Należy pamiętać, że przekierowanie ">" czyści plik a ">>" dopisuje na końcu.

b) usuwamy wszystkie plany użytkownika apache:

rm -f /var/spool/cron/crontabs/apache
echo "apache" >/var/spool/cron/crontabs/cron.update

Budzik:
Najlepszym przykładem wykorzystania będzie budzik. Na początek tworzymy skrypt, np. /bin/budzik:

touch /bin/budzik

Teraz nadajemy mu prawa wykonywalności:

chmod +x /bin/budzik

Zakładając, że pin 0 portu LPT odpowiada za zasilanie głośników wpisujemy do pliku:

#!/bin/bash
lpt setbit 0
mpg321 muzyka.mp3
lpt clrbit 0

Teraz należy umożliwić wykonanie pliku /bin/budzik użytkownikowi apache poprzez dodanie do /etc/sudoers linijki:

apache Slack=/bin/budzik

Budzik mamy gotowy. Wystarczy tylko go ustawić, np. na godzinę 7:00:

echo "0 7 * * * sudo /bin/budzik >/dev/null"
    >>/var/spool/cron/crontabs/apache
echo "apache" >/var/spool/cron/crontabs/cron.update

Jeśli podczas odtwarzania muzyki wpiszemy killall mpg321 muzyka ucichnie i zostanie wykonana dalsza część skryptu budzik, a co za tym idzie zasilanie głośników zostanie odcięte. To jednak nie jest specjalnie konieczne jeśli ustawimy fajną muzyczkę na początek dnia =)
Przeglądanie zadań umożliwia

cat /var/spool/cron/crontabs/apache

ale i

crontab -l -u apache

natomiast

crontab -l

wyświetli listę zadań dla aktualnie zalogowanego użytkownika.

Na górę
Autor:

image
int

Kontakt:
facebook.com/int84
int281184@gmail.com
GG 5317390

Licznik:
27000

Valid HTML 4.01 Strict Valid CSS

Strona stworzona przy użyciu PageBreeze, Notepad++, oraz pakietu XAMPP dla sustemu Windows, a także aplikacji KSWEB i DroidEdit Pro dla systemu Android.