Uruchamianie skryptu powłoki o określonych porach
Aby zaplanować uruchamianie skryptu powłoki o określonych porach, użyj launchd
lub cron
.
Planowanie zadań przy użyciu launchd
Do planowania zadań należy używać
launchd
, a niecron
. Użycielaunchd
sprawia, że jeśli dane zadanie zostanie ominięte, ponieważ komputer jest wyłączony lub uśpiony, zostanie ono dodane do kolejki wykonywanej po ponownym włączeniu komputera.Aby przy użyciu
launchd
zaplanować zadania powtarzane co określony czas, użyj kluczaStartCalendarInterval
lubStartInterval
.Aby dowiedzieć się więcej o narzędziu
launchd
, zobacz jego stronę man.
Planowanie zadania przy użyciu cron
Demon cron
wykonuje zaplanowane polecenia, zdefiniowane w plikach crontab. Demon cron
szuka w folderze /usr/lib/cron/tabs/ plików crontab o takich samych nazwach, jak nazwy kont w /etc/passwd, a następnie wczytuje je do pamięci. Demon cron
szuka także plików crontab w folderze /etc/crontab/, mają one jednak inny format. Następnie cron
uruchamia się co minutę i sprawdza przechowywane pliki crontab oraz wszystkie znajdujące się w nich polecenia, ustalając, czy któreś z tych poleceń ma zostać uruchomione w danej minucie.
Gdy polecenia są wykonywane, ich wyjście przesyłane jest w wiadomości email do właściciela pliku crontab lub do użytkownika podanego w pliku crontab w opcjonalnej zmiennej środowiskowej MAILTO.
Narzędzie crontab
pozwala na instalowanie, odinstalowywanie oraz wyświetlanie tabel używanych do sterowania demonem cron
. Każdy użytkownik może mieć własny plik crontab.
Aby skonfigurować swój plik crontab, użyj polecenia
crontab -e
. Powoduje ono otworzenie pustego pliku crontab w trybie edycji.Oto przykład pliku crontab:
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
Pierwsza pozycja w tym przykładzie naprawia uprawnienia na woluminie MacHD o 18:30 każdego dnia, od poniedziałku do piątku:
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
Druga pozycja to zaplanowana naprawa woluminu, uruchamiana o 23:50 w każdą niedzielę:
50 23 * * 0 diskutil repairVolume /Volumes/MacHD