Niektóre zadania planuję za pomocą crontab.
Co się stanie, jeśli mój komputer zostanie zamknięty lub wyłączony w czasie, gdy cron miał coś zrobić?
Czy każde pominięte zadanie cron jest uruchamiane po włączeniu komputera, czy też ignorowane zadania tego dnia są ignorowane? Jeśli pominięte zadania nie zostaną wznowione, czy istnieje sposób na skonfigurowanie crona tak, aby uruchamiał pominięte zadania po ponownym włączeniu komputera?
Odpowiedzi:
Gdy komputer zostanie zamknięty (lub demon cron w innym przypadku nie byłby uruchomiony), zadania cron nie zostaną uruchomione.
Jeśli masz zadania, które chcesz uruchomić po fakcie w czasie, gdy komputer jest wyłączony, użyj anakronu. Zainstalowane domyślnie, zobacz „man anacron”, „man anacrontab” lub plik / etc / anacrontab, aby uzyskać więcej informacji.
Ubuntu domyślnie używa anacrona do wpisów crontab w:
pozostawiając pozostałe crontabs do obsługi przez głównego demona cron, w szczególności:
UWAGI
Sam Anacron nie działa jako demon, ale polega na skryptach startowych systemu i na uruchamianiu samego crona.
Na polu Ubuntu 8.04, na który patrzę, /etc/init.d/anacron jest uruchamiany przy starcie systemu, i ponownie przez crona każdego ranka o 07:30.
Plik README na /usr/share/doc/anacron/README.gz zawiera nieco więcej informacji niż jest to zawarte na stronach podręcznika.
PRZYKŁADY
W przypadku prostych zadań „codziennych”, „cotygodniowych”, „miesięcznych” umieść kopię lub dowiązanie symboliczne do skryptu w jednym z katalogów /etc/cron.{daily|weekly|monthly} powyżej. Anacron zajmie się uruchamianiem go codziennie / co tydzień / co miesiąc, a jeśli komputer jest wyłączony w dniu, w którym normalnie uruchamiane byłyby „cotygodniowe” skrypty, uruchomi je przy następnym uruchomieniu komputera.
Jako kolejny przykład, zakładając, że masz tutaj skrypt: /usr/local/sbin/maint.sh
I chcesz uruchamiać go co trzy dni, standardowy wpis w / etc / crontab wyglądałby tak:
Jeśli komputer nie był włączony o godzinie 00:00 3 dnia miesiąca, zadanie nie uruchomiłoby się przed 6 dniem.
Aby zamiast tego uruchomić zadanie na 4, gdy komputer jest wyłączony i „pominie” uruchomienie na 3, użyj tego w / etc / anacrontab (nie zapomnij usunąć linii z / etc / crontab):
„Opóźnienie” powyżej „5” oznacza, że anakron będzie czekał 5 minut, zanim uruchomi to zadanie. Chodzi o to, aby uniemożliwić anakronowi odpalenie rzeczy natychmiast po uruchomieniu.
źródło
anacron
, zainstalujcronie-anacron
pakiet.Zależy to od używanego harmonogramu cron. Podstawowy, waniliowy demon cron nie uruchomi zadań, które zostały pominięte z powodu przestoju systemu. Istnieją jednak inne harmonogramy cron specjalnie zaprojektowane dla tej sytuacji, które zrobią to za Ciebie. Dwie najczęstsze przykłady anacron i fcron .
źródło
Zadania zaplanowane przy wyłączonym komputerze nie będą uruchamiane po ponownym włączeniu komputera
źródło
Jeśli zamkniesz się podczas działania zadań cron, system zostanie zamknięty, a zadania cron zatrzymane (lub nie uruchomione).
Jedną z możliwości, które możesz sprawdzić, jest anakron.
źródło
Naprawdę zależy od uruchomionego crona deamon. Vixie-cron po prostu pominie cronjobs, które zostały pominięte. fcron będzie eksploatowany brakowało crons tak szybko, jak to możliwe. IIRC jest również oparty na vixie-cron, więc jeśli tego właśnie szukasz, możesz sprawdzić fcron.
źródło