Jak skonfigurować zadanie CRON w systemie OS X, aby codziennie uruchamiać polecenie curl o określonej godzinie?

20

Mam polecenie CURL, które chcę uruchamiać codziennie o 3 rano, ale nie jestem pewien, jak to skonfigurować, a wszystkie przewodniki są dziwne.

Załóżmy, że mam dużo doświadczenia z terminalem / bash, ale nigdy wcześniej nie konfigurowałem crona.

Czy możliwe jest, aby cron przebudził mój komputer, nawet jeśli śpi, a pokrywa jest zamknięta (MacBook Pro), wystarczy uruchomić to polecenie curl, a następnie ponownie go uśpić?

Jak skonfigurować to w obu przypadkach?

marcamillion
źródło

Odpowiedzi:

22

Zacznij od uruchomienia polecenia:

crontab -e

Otworzy to crontab dla twojego użytkownika w edytorze tekstu. Cron używa określonej notacji dla zaplanowanych zadań. Poniższy format pokazuje pola dla wpisu pliku crontab użytkownika (które muszą być oddzielone tabulatorami).

min  hour  day_of_month  month  day_of_week  command

Aby zaplanować uruchamianie polecenia curl codziennie o 3 nad ranem, możesz wstawić wiersz:

0  3  *  *  *  curl args...

Zauważ, że minuty i godziny odpowiadają 3 nad ranem (uwaga: cron używa 24-godzinnego formatu czasu, bez rano i po południu). Następujące gwiazdki oznaczają każdy dzień miesiąca, każdego miesiąca, każdego dnia tygodnia.

Cron nie będzie w stanie obudzić twojego komputera ze snu, ale ten post może ci pomóc w przebudzeniu osx ze snu

diametralpitch
źródło
1
Kiedy to crontab -ewidzę, widzę to w moim terminalu:, $ crontab -e crontab: no changes made to crontaba następnie otwiera mój edytor tekstowy z plikiem crontab.some-random-stringz folderu /tmp. Po jego edycji i zapisaniu nic się nie dzieje w moim terminalu. Jeśli to zrobię crontab -l, praca, którą właśnie podałem, się nie pojawi. Następnie, jeśli zrobię to crontab -eponownie, otwiera kolejny pusty crontab.some-random-string. Przetestowałem również pierwszy zapisany plik crontab, ustawiając czas na 2 minuty od momentu zapisania go i cron nigdy nie biegł. Co może się dziać?
marcamillion
Który edytor tekstu otwiera się po uruchomieniu „crontab -e”?
diametralpitch
Moja domyślna, atom. To się uruchamia, gdy otwieram wszystko, co można edytować w moim terminalu. To jest to, co mam w ~/.bash_profile, export EDITOR='open -a "/Applications/Atom.app"'.
marcamillion
Hmm, jeśli uruchamiasz atom samodzielnie z wiersza poleceń, czy czeka on na zamknięcie atomu przed monitowaniem o kolejne polecenie (jeśli nie, możesz spróbować użyć innego edytora tekstu).
Adam Luchjenbroers
@AdamLuchjenbroers Nie jestem pewien, czy w pełni rozumiem twoje pytanie. Korzystam z atomu do wszystkich edycji kodu. Więc jeśli chcę edytować dowolny plik, po prostu robię to atom .w katalogu lub atom <filepath>.
marcamillion
0

jeśli chcesz to zrobić w GUI, mogę polecić Ci CronniX z roaringapps https://roaringapps.com/app/cronnix

konqui
źródło
Dziękuję za tę wskazówkę .... ale myślę, że wolałbym robić to ręcznie w wierszu poleceń lub za pomocą edytora tekstu, aby się nauczyć :)
marcamillion