Come faccio a impostare un processo cron su OS X per eseguire un comando curl ogni giorno a un'ora specifica?


20

Ho un comando CURL che voglio eseguire ogni giorno alle 3:00, ma non sono sicuro di come configurarlo e le guide sono tutte strane.

Supponiamo di avere molta esperienza terminal / bash, ma non ho mai impostato un cron prima.

È possibile che il cron job riattivi il mio computer, anche se è inattivo e il coperchio è chiuso (macbook pro), solo per eseguire questo comando di arricciatura e poi rimetterlo in sospensione?

Come lo installo in entrambi i modi?

Risposte:


22

Inizia eseguendo il comando:

crontab -e

Questo aprirà il crontab per il tuo utente in un editor di testo. Cron utilizza una notazione specifica per i lavori pianificati. Il formato seguente mostra i campi per una voce crontab dell'utente (che deve essere separata da schede).

min  hour  day_of_month  month  day_of_week  command

Per pianificare l'esecuzione di un comando di arricciatura ogni giorno alle 3:00, è possibile inserire la riga:

0  3  *  *  *  curl args...

Nota come i minuti e l'ora corrispondono alle 3 del mattino (nota a margine: cron usa il formato dell'ora 24 ore, no am o pm). Gli asterischi che seguono significano ogni giorno del mese, ogni mese, ogni giorno della settimana.

Cron non sarà in grado di riattivare il computer dalla sospensione, ma potresti trovare questo post crontab utile per riattivare osx dalla sospensione


1
Quando lo faccio crontab -evedo questo nel mio terminale:, $ crontab -e crontab: no changes made to crontabe quindi apre il mio editor di testo con il file crontab.some-random-stringdalla cartella /tmp. Dopo averlo modificato e salvato, non succede nulla nel mio terminale. In tal caso crontab -l, il lavoro appena inserito non viene visualizzato. Quindi, se lo faccio di crontab -enuovo, apre un altro spazio vuoto crontab.some-random-string. Ho anche testato il primo crontab che ho salvato impostando il tempo a 2 minuti da quando l'ho salvato e il cron non ha mai funzionato. Cosa potrebbe succedere?
marcamillion,

Quale editor di testo si apre quando si esegue 'crontab -e'?
diametralpitch,

Il mio unico difetto, atom. Questo è ciò che viene avviato quando apro qualcosa da modificare nel mio terminale. Questo è quello che ho nel mio ~/.bash_profile, export EDITOR='open -a "/Applications/Atom.app"'.
marcamillion,

Hmm, se esegui atom dalla riga di comando da solo, attende che atom esca prima di richiedere un altro comando (in caso contrario, potresti voler provare un altro editor di testo).
Adam Luchjenbroers il

@AdamLuchjenbroers Non sono sicuro di aver compreso appieno la tua domanda. Uso atom per tutte le mie modifiche al codice. Quindi, se voglio modificare qualsiasi file, lo faccio solo atom .all'interno della directory o atom <filepath>.
marcamillion,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.