L'aggiunta di file a /etc/cron.d non lo fa funzionare (ubuntu 10.04)


20

Se scp un file cron in /etc/cron.d non funziona se non modifico il file e cambio il comando. Quindi crond sembra raccogliere il file cron.

Come posso fare in modo che cron ricarichi i suoi file cron in Ubuntu 10.04? "toccare" il file non funziona né "riavvia cron" o "ricarica cron".

Il mio file cron è impostato per essere eseguito ogni minuto e registra in un file. Nulla finisce nel file di registro finché non modifico il comando e non vi è alcuna voce per esso in / var / log / syslog

Sono perplesso.

Ecco il mio file cron salvato in /etc/cron.d/runscript (nota che termina con una nuova riga)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &

3
È bene che tu abbia incluso l'utente per eseguire il lavoro come. L'ho lasciato fuori, che era la causa dei miei problemi.
Edward Anderson,

1
Anni dopo nessuna risposta accettata? L'hai fatto funzionare? Anch'io sono bloccato e le insidie ​​comuni non sembrano essere il problema.
ramoscello

Risposte:


27

Ho appena incontrato questo problema e sebbene non risponderà al tuo caso specifico, potrebbe benissimo aiutare altre persone a cercare su Google lo stesso problema poiché questa domanda restituisce risultati molto alti.

Avevo salvato un file in /etc/cron.d e veniva ignorato. Nel mio caso era perché avevo dato un'estensione ai file.

mytask.cronnon ha funzionato ma l'ho rinominato mytaske ha funzionato bene.

Tutti i file con estensioni vengono ignorati, quindi assicurati che il tuo file salvato non abbia alcuna estensione.


13
La pagina di manuale cron (8) su Debian / Ubuntu lo documenta abbastanza chiaramente in questi giorni: "Il supporto per /etc/cron.d è incluso nel demone cron stesso [...] I file in questa directory [...] devono essere conformi con la stessa convenzione di denominazione utilizzata da run-parts (8): devono consistere esclusivamente di lettere maiuscole e minuscole, cifre, caratteri di sottolineatura e trattini. Ciò significa che non possono contenere punti. "
Josip Rodin,

15

Verificare che il file che si sta copiando finisca in a \n. Le voci nei crontab che non hanno un \nalla fine generalmente incontrano problemi. Il modo più semplice per assicurarti è quello di mettere una riga vuota dopo l'ultima voce.


1
Stavo per modificare la mia domanda per dire che termina con \ n
tom

1
Il cron Debian / Ubuntu lo avverte in syslog, dal momento che 3.0pl1-110 è stato rilasciato nel 2010, cfr. voce del log delle modifiche: "Log crontab mancante newline prima di EOF su syslog. Questo è rilevante solo per i crontab non installati tramite crontab (1), ad es. /etc/cron.d/* e / etc / crontab. Chiude: # 76625"
Josip Rodin,
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.