Banyak crontab untuk satu pengguna

13

apakah ada cara untuk menggunakan banyak file crontab untuk satu pengguna? Memikirkan sesuatu di sepanjang baris file crontab per proyek alih-alih crontab per pengguna ...

Bantuan apa pun dihargai ...

Realshadow
sumber

Jawaban:

13

Biasanya adalah ide bagus untuk menjaga crontab Anda di file yang terpisah, dan menginstalnya dengan crontab filename. (Saya menyimpan file crontab saya di sistem kontrol sumber.)

Anda dapat memiliki beberapa file crontab, dan instal semuanya

cat file1 file2 file3 | crontab

The crontabPerintah biasanya hanya mengelola crontab tunggal per pengguna. Tetapi Anda dapat menambahkan file crontab sistem ke /etc/cron.ddirektori. File-file ini memiliki bidang tambahan setelah spesifikasi waktu yang menunjukkan pengguna untuk pekerjaan itu, dan Anda dapat memiliki beberapa file per pengguna. Bahkan jika salah satu dari mereka memiliki kesalahan sintaks, yang lain masih akan mengeksekusi.

Anda akan memerlukan akses root untuk menginstal file di direktori itu.

man 5 crontab untuk detail.

Saya tidak yakin bahwa mengelak dari mekanisme crontab normal seperti ini adalah ide yang bagus, tetapi seharusnya berhasil.

(Ini mengasumsikan implementasi "Vixie Cron", yang mungkin menggunakan sistem Anda.)

CATATAN: Anda mungkin tergoda untuk mencoba

crontab file1 file2 file3 # WRONG

tetapi percobaan cepat menunjukkan bahwa semua nama file tetapi yang pertama diabaikan secara diam-diam. Halaman manual mengatakan bahwa satu nama file diterima, tetapi tidak mengatakan apa yang terjadi jika beberapa nama file diberikan.

Keith Thompson
sumber
Saya melakukannya hari ini. Itu akan mudah dilakukan, tetapi tujuan dengan ini adalah bahwa setiap "manajer" proyek akan memiliki kendali atas crontab-nya sendiri. Dengan pendekatan itu harus digabungkan seperti itu setiap kali seseorang mengubah salah satu file, yang berarti mereka harus melacak semua file yang perlu dikompilasi
1
Jadi buat program (atau skrip, atau apa pun) untuk mengotomatiskannya. Perhatikan bahwa Anda dapat menjalankan crontabperintah dari entri crontab.
Keith Thompson
1
@MateuszKonieczny: Itu alasan yang bagus, tetapi juga mudah untuk menghapus crontab Anda secara tidak sengaja. crontabtanpa argumen membaca crontab baru dari stdin.
Keith Thompson
1
@MateuszKonieczny: Tidak, saya hanya menyimpannya dalam repo CVS dan menyalinnya $HOMEketika saya memperbaruinya. (Saya menggunakan CVS karena Git tidak ada ketika saya mulai melakukan ini.)
Keith Thompson
1
@KeithThompson Oh, mengerti! Saya membuat dokumen untuk membantu orang menjalankan Fedora Core 24 dari "awal" tanpa evolusi atau gnome: github.com/barrycarter/bcapps/blob/master/FEDORA dan ingin berbagi bagian dari file cron saya tetapi tidak semuanya. Solusi Anda (membuat bc-public-cron di direktori GIT dan bc-private-cron di luarnya) sangat sesuai dengan tagihan.
barrycarter
4

Kenapa kamu ingin melakukan itu? Anda bisa menggunakan banyak baris di crontab - saya pikir itu akan berhasil juga.

Ada juga direktori yang mungkin bisa Anda gunakan:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/
Taji
sumber
Begitulah sekarang :) Saya hanya ingin tahu apakah ada cara untuk melakukan ini