Saya menyiapkan tugas pemeliharaan sistem biasa yang harus dijalankan sebagai root. Saya berencana untuk menggunakan rasa cron yang datang dengan Ubuntu 14,04 LTS sebagai default.
Saya melihat admin sebelumnya (yang sejak meninggalkan perusahaan) diedit / etc / crontab secara langsung. Namun saya mengerti pendekatan lain yang mungkin akan digunakan crontab -e
sebagai root. Apakah ada argumen yang memaksa untuk menggunakan satu atau yang lain, atau apakah itu ke preferensi?
linux
cron
ubuntu-14.04
marcv81
sumber
sumber
Jawaban:
Mungkin berguna untuk mencatat bahwa pekerjaan dalam crontab pribadi (
crontab -e
) selalu dijalankan sebagai pemiliknya, di mana/etc/crontab
berisi<user>
bidang wajib tambahan yang memungkinkan admin untuk mengonfigurasi pekerjaan agar dijalankan sebagai pengguna non-root.Mengedit crontab sistem atau menyiapkan crontab pribadi untuk root mungkin sedikit lebih portabel, tidak spesifik untuk distribusi Linux tertentu dan mungkin lebih nyaman bagi seseorang untuk memelihara, dengan semua pekerjaan dalam satu file tetapi:
Secara pribadi saya mendukung opsi ketiga : untuk setiap drop tugas yang dijadwalkan
/etc/cron.d/
dengan potongan cron/etc/cron.[hourly |daily |weekly |monthly]
direktori yang relevan .Itu lebih mudah untuk skrip (Anda hanya dapat membuat / menimpa / menghapus file seperti itu dan Anda tidak perlu muck dalam isi file crontab tunggal) dan yang bekerja dengan baik dengan tool manajemen konfigurasi dan itulah yang sudah dilakukan manajer paket lakukan pula.
Pekerjaan / skrip di
/etc/cron.[hourly |daily |weekly |monthly]
selalu dieksekusi sebagai root, di mana potongan cron di/etc/cron.d/
memungkinkan pengaturan jadwal kustom maupun berjalan sebagai pengguna yang berbeda dengan<user>
bidang wajib yang sama ditemukan di/etc/crontab
.sumber
/etc/crontab
adalah bahwa suatu penggabungan akan diperlukan setiap kali Anda memperbaruicron
paket. Anda tidak memiliki masalah itu jika Anda hanya menambahkan file baru ke salah satu/etc/cron.*
direktori./etc/cron.[hourly |daily |weekly |monthly]
menyimpan executable sambil/etc/cron.d
memegang crontab. Selain itu, +1.Seingat saya,
crontab -e
memiliki keuntungan tambahan yang memverifikasi sintaks crontab sebelum menginstalnya, dan akan kesalahan dan mengembalikan sebelumnya jika Anda membuat kesalahan. Dengan cara ini, apa pun yang sebelumnya berfungsi tidak akan tiba-tiba berhenti jika Anda salah sintaks. Saya pikir praktik terbaik adalah dengan menggunakan utilitas, seperti menjalankanvisudo
daripada mengedit/etc/sudoers
secara langsung.sumber
/etc/crontab
baris dengan nama pengguna di kolom ke-6). - Meskipun saya ingin berargumen bahwa menggunakan alat interaktif bukanlah "praktik terbaik" , Anda harus mengotomatiskan dengan alat-alat seperti Wayang / Garam / Kemungkinan dll. Dan tidak boleh mengkonfigurasi server dengan tangan lagi di tempat pertama. Di sisi lain jika Anda jadul, maka memang menggunakan alat Anda.Ini benar-benar pertanyaan gaya, ada alasan beberapa metode ditawarkan oleh OS. Bersikaplah konsisten dan jangan campur aduk jika Anda tidak ingin membingungkan orang lain (atau diri Anda sendiri setelah beberapa saat tidak berurusan dengan sistem) - jika sulit untuk melihat tugas apa yang sebenarnya dijadwalkan di seluruh host, cenderung berakhir dengan kejutan yang tidak menyenangkan.
sumber
Untuk memastikan menambahkan pekerjaan cron yang memerlukan hak pengguna tertentu, saya pribadi menggunakan perintah berikut:
Anda juga bisa menambahkan
sudo
.Seperti yang dikatakan @rackandboneman, tidak perlu dipusingkan dengan file /etc/cron.d/. Jika masalahnya adalah tentang pekerjaan cron pengguna, gunakan fitur
crontab
perintah.sumber