Codzienne uruchamianie skryptu przy użyciu kroniki

10

Potrzebuję dokładnego kodu, którego bym użył, ponieważ nie jestem w stanie go rozgryźć. Używam crontab -edo konfigurowania zadania crona, ale kiedy go zapisuję, nigdy nie działa. Próbuję też uruchomić plik wywołany newmail.shprzez użytkownika root.

użytkownik219706
źródło
Czy znalazłeś odpowiedź na swoje pytanie?
bendaf

Odpowiedzi:

10

Jeśli chcesz, aby zadanie było uruchamiane codziennie o 15:17, użyj:

17 15 * * * root newmail.sh

Mówi to: „Uruchom newmail.sh jako root każdego dnia tygodnia, każdego dnia miesiąca, każdego miesiąca o 15:17”.

minuta godzina dom miesiąc dow użytkownik cmd

minuta - określa, w której minucie godziny będzie uruchamiane polecenie, i będzie zawierać się w przedziale od „0” do „59”

godzina - Określa godzinę, o której polecenie zostanie uruchomione, i jest określona w zegarze 24-godzinnym, wartości muszą zawierać się w przedziale od 0 do 23 (0 to północ

dom - To jest Dzień miesiąca, w którym chcesz uruchomić polecenie, np. aby uruchomić polecenie 19 dnia każdego miesiąca, dom będzie mieć 19.

miesiąc To jest miesiąc, w którym określone polecenie będzie uruchamiane, może być określone liczbowo (0-12) lub jako nazwa miesiąca (np. maj)

dow - jest to dzień tygodnia, w którym chcesz uruchomić polecenie, może to być także wartość liczbowa (0–7) lub nazwa dnia (np. słońce).

użytkownik - to użytkownik, który uruchamia polecenie.

cmd - to polecenie, które chcesz uruchomić. To pole może zawierać wiele słów lub spacji.

z: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

dm78
źródło
na Ubuntu 16 i nowszych nowy format to: „mh dom mon dow command”
bendaf
na Ubuntu 19 minuta jest pierwsza. Ostrzega również o niepoprawnym czasie.
kelalaka
6
sudo crontab -e

Dodaj te linie na końcu pliku

*/1 * * * * wget -O /dev/null  project_crone_URL

(Uruchom crona raz na 1 minutę)

0 0 * * * wget -O /dev/null  project_crone_URL

(Uruchom crona raz na 24 godziny)

Zapisz plik

Uruchom crontab tym poleceniem

sudo /etc/init.d/cron start

Zatrzymaj crontab za pomocą tego polecenia

sudo /etc/init.d/cron stop

Uruchom ponownie crontab za pomocą tego polecenia

sudo /etc/init.d/cron restart
Raman Singh
źródło
2

Jeśli używasz, crontab -eponieważ system Ubuntu 16.0+ nie będzie miał pola użytkownika, więc poprawny format to:

17 15 * * * newmail.sh

Mówi to: „Uruchom newmail.sh każdego dnia tygodnia, każdego dnia miesiąca, każdego miesiąca o 15:17”.

Inne sposoby, w jakie odpowiedź dm78 jest poprawna i zawiera dokładny opis formatu.

Również jeśli coś pójdzie nie tak i masz zainstalowany system pocztowy, wyśle ​​ci wiadomość. Aby uzyskać więcej informacji, zobacz tę odpowiedź

Jeśli jesteś zainteresowany logowaniem cronjobs, możesz skorzystać z tej odpowiedzi .

bendaf
źródło
2
To zależy od tego, który crontab edytujesz. crontab -eThingy nie ma pola obsługi (jak poprawnie powiedzieć), ale plik /etc/crontab(tak zwany układ crontab) i poniższe pliki /etc/cron.d robić mieć pole użytkownika.
PerlDuck