Inilah yang saya lakukan pada Debian Jessie:
- instal cron via
apt-get install cron
- masukkan
backup_crontab
file/etc/cron.d/
Namun tugas itu tidak pernah berjalan.
Berikut ini beberapa output:
/# crontab -l
no crontab for root
/# cd /etc/cron.d && ls
backup_crontab
/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1
Apakah ada sesuatu yang harus dilakukan untuk mengaktifkan crontab tertentu, atau mengaktifkan "layanan" cron itu sendiri?
ls /etc/cron.d
setara dengancd /etc/cron.d && ls
dalam hal output. Satu-satunya perbedaan adalah direktori kerja tidak akan berubah.Jawaban:
File-file yang
/etc/cron.d
perlu juga mencantumkan pengguna yang menjalankan tugas itu.yaitu
Anda juga harus memastikan izin dan pemilik: grup diatur dengan benar (
-rw-r--r--
dan dimiliki olehroot:root
)sumber
crontab -l
melaporkan entri cron di/var/spool/cron/crontabs/
- yaitu crontab per pengguna ./etc/cron.d
file adalah sistem crontab dan tidak dilaporkan olehcrontab -l
.root
dalam file - hanyacrontab -l
tidak menyebutkannya, seperti yang Anda jelaskan mengapa - terima kasih atas bantuan Andaetc/cron.d
file dengan titik di tengah nama dan pekerjaan itu tidak pernah dieksekusi sampai saya menamainya kembaliHal lain yang saya amati adalah bahwa file dalam
/etc/cron.d
tidak dapat memiliki ekstensi. Dalam kasus khusus saya, saya memiliki tautan simbolis:Pembatasan nama file didokumentasikan pada halaman manual run-bagian: http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html , seseorang dapat melewati opsi --regex untuk mengganti format file.
Namun perilaku cron default tetap tanpa ekstensi, lihat komentar di bawah: https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
sumber
Saya pikir Anda mungkin hanya kehilangan satu baris kosong yang diperlukan dari akhir file cron Anda. Saya memiliki masalah yang sama, tetapi setelah memeriksa semua yang tercantum di sini (izin pengguna, nama file, versi cron dll), saya menyadari bahwa saya tidak memiliki jeda baris setelah entri terakhir di saya
/etc/cron.d/own_cron
dan yang menyebabkan seluruh file diabaikan.sumber
Jika Anda satu-satunya pengguna di komputer ini, Anda mungkin ingin menggunakannya saja
crontab -e
. Anda akan diminta untuk memilih editor saat pertama kali menjalankan perintah. Kemudian Anda dapat menambahkan ini ke dalamnya:Jika Anda mengubah ke akun pengguna normal, Anda harus menggunakan
sudo crontab -e
untuk mengkonfigurasi skrip yang ingin Anda jalankanroot
.crontab -l
hanya menampilkan crontab saat ini, setelah Anda mengaturnya menggunakancrontab -e
. Jika Anda memiliki file cron di/etc/cron.d
/, itu tidak akan ditampilkan bersamacrontab -l
.Anda juga akan perlu untuk memverifikasi bahwa script Anda executable dengan:
chmod +x /backup.sh
.sumber
Dockerfile
jadi saya tidak bisa melakukannyacrontab -e
- tapi ini informasi yang bergunaUntuk Cron dari * bian distro (seperti Raspbian), Anda perlu mengaktifkan
-l
parameter daemon Cron. Itu disarankan untuk dilakukan menggunakan/etc/default/cron
file config, mengaktifkanEXTRA_OPTS
.sumber
-l
opsi ke daemon cron mengotorisasi set nama file yang diperluas dalam/etc/cron.d
direktori, jadi jika file diabaikan secara diam-diam karena ada titik di dalamnya, maka "menambahkan -l" atau "menghapus titik" akan memperbaiki masalah.Periksa versi Anda
cron
.Tampaknya jika Anda menggunakan Dillon's crond, Anda tidak perlu pengguna dalam
/etc/cron.d
entri.Saya menemukan ini setelah hampir menarik rambut saya yang tersisa.
Saya memiliki beberapa entri yang telah dijatuhkan
/etc/cron.d
oleh berbagai pemasangan. Setelah beberapa penyelidikan, saya menemukan salah satu dari mereka bekerja Itu tidak memiliki pengguna. Jadi saya mengambil pengguna dari yang lain. Dan mereka mulai bekerja.sumber