2010-01-04 12 views
13

Sto provando a impostare un commit svn automatizzato per eseguire semireamente sotto mac os 10.6, ma i crontabs che sto aggiungendo a cron non sembrano essere validi e/o non sembra nemmeno essere guardato da cron. Per la prova ho fatto un semplice crontab e sceneggiatura:cron jobs sotto mac os 10.6 snow leopard

Crontab: */2 * * * * /Users/username/crontest

dove username viene sostituito con il nome utente di sistema, indicando in tal modo alla mia home directory (e sì, quelli sono davvero schede tra ogni valore - hanno non sono riprodotti fedelmente nella sezione code)

Per prima cosa eseguo un crontab -r, quindi eseguo crontab .mycrontab che contiene la riga precedente. crontab -l sputa la riga in alto, e in esecuzione ps -A | grep cron mostra /usr/sbin/cron in esecuzione, che presumo sia il demone cron sotto mac os x. Lo script /Users/username/crontest è semplicemente aggiungendo una riga di testo in un file di testo, come ad esempio:

echo "hi" >> /Users/username/crontest.txt

cosa succede? Sono perplesso.

risposta

14

Oops ... Mi mancava il carattere di fine riga alla fine del cron job. Sembra che l'abbia risolto.

+2

Giusto per essere chiari, ho avuto un problema simile e aggiungendo una nuova riga al mio file durante l'esecuzione di contrab -e l'ho risolto. Ick. –

5

Sebbene il metodo preferito su OS X per l'esecuzione di processi automatici sia launchd, cron è ancora supportato. È probabile che tu abbia problemi di permessi con il tuo script; assicurati che abbia il permesso di esecuzione.

Inoltre, */2 significa ogni due minuti, non ogni ora. Prova a impostare il campo dei minuti con un elenco di minuti:

0,30 * * * * /Users/username/crontest 

Lavori per me il 10.6.

+1

Grazie per il suggerimento. Nota a margine: credo di non aver chiarito nella mia domanda iniziale che, sebbene il mio ultimo lavoro cron fosse destinato a funzionare ogni mezz'ora, il mio cron job di test era in realtà destinato a essere eseguito una volta ogni due minuti. – jtrim

Problemi correlati