Menambahkan file ke /etc/cron.d tidak membuatnya berjalan (ubuntu 10.04)

20

Jika saya scp file cron ke /etc/cron.d itu tidak berjalan kecuali saya mengedit file dan mengubah perintah. Kemudian tampaknya crond mengambil file cron.

Bagaimana saya bisa membuat cron memuat kembali file cron-nya di ubuntu 10.04? 'menyentuh' file tidak berfungsi juga tidak 'restart cron' atau 'reload cron'.

File cron saya diatur untuk dijalankan setiap menit dan mencatat ke file. Tidak ada yang berakhir di file log sampai saya mengedit perintah, dan tidak ada entri untuk itu di / var / log / syslog

Saya bingung.

Inilah file cron saya yang disimpan ke /etc/cron.d/runscript (perhatikan berakhir dengan baris baru)

# 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 &
tom
sumber
3
Ada baiknya Anda menyertakan pengguna untuk menjalankan pekerjaan sebagai. Saya meninggalkan itu, yang merupakan penyebab masalah saya.
Edward Anderson
1
Bertahun-tahun kemudian tidak ada jawaban yang diterima? Apakah Anda berhasil? Saya terjebak juga, dan perangkap umum tampaknya tidak menjadi masalah.
twigmac

Jawaban:

27

Saya baru saja mengalami masalah ini dan sementara itu tidak akan menjawab kasus spesifik Anda, mungkin membantu orang lain mencari masalah yang sama karena pertanyaan ini menghasilkan hasil yang sangat tinggi.

Saya telah menyimpan file di /etc/cron.d dan itu diabaikan. Dalam kasus saya itu karena saya telah memberikan ekstensi file.

mytask.crontidak berfungsi tetapi saya menamainya kembali mytaskdan berfungsi dengan baik.

Setiap file dengan ekstensi diabaikan, jadi pastikan file yang Anda simpan tidak memiliki ekstensi apa pun.

Anigel
sumber
13
Halaman manual cron (8) tentang Debian / Ubuntu mendokumentasikan ini dengan cukup jelas dewasa ini: "Dukungan untuk /etc/cron.d termasuk dalam daemon cron itu sendiri [...] File dalam direktori ini [...] harus memenuhi ke konvensi penamaan yang sama seperti yang digunakan oleh run-parts (8): mereka harus terdiri hanya dari huruf besar dan kecil, angka, garis bawah, dan tanda hubung. Ini berarti bahwa mereka tidak dapat mengandung titik. "
Josip Rodin
15

Pastikan file yang Anda salin diakhiri dengan a \n. Entri dalam crontab yang tidak memiliki \npada akhirnya mengalami masalah. Cara termudah untuk memastikan ini adalah dengan meletakkan baris kosong setelah entri terakhir Anda.

user9517 mendukung GoFundMonica
sumber
1
Saya baru saja akan mengedit pertanyaan saya untuk mengatakan bahwa pertanyaan itu diakhiri dengan \ n
tom
1
Cron Debian / Ubuntu memperingatkan tentang hal ini di syslog, sejak 3.0pl1-110 dirilis pada 2010, lih. entri changelog: "Log crontab hilang baris baru sebelum EOF ke syslog. Ini hanya relevan untuk crontab yang tidak diinstal melalui crontab (1), yaitu. /etc/cron.d/* dan / etc / crontab. Penutup: # 76625"
Josip Rodin