GNU/Linux >> Belajar Linux >  >> Linux

Haruskah saya mengedit /etc/crontab atau menjalankan crontab -e sebagai root?

Solusi 1:

Mungkin berguna untuk dicatat bahwa pekerjaan di crontab pribadi (crontab -e ) selalu dieksekusi sebagai pemiliknya, di mana /etc/crontab berisi <user> wajib tambahan 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 bisa dibilang lebih nyaman untuk seseorang untuk mempertahankan, dengan semua pekerjaan dalam satu file tetapi:

Secara pribadi saya menyukai opsi ketiga :untuk setiap penurunan tugas terjadwal

  • file dalam /etc/cron.d/ dengan cuplikan cron
  • yang dapat dieksekusi (skrip) dalam /etc/cron.[hourly |daily |weekly |monthly] yang relevan direktori.

Itu lebih mudah untuk skrip (Anda cukup membuat/menimpa/menghapus file seperti itu dan Anda tidak perlu mengotak-atik konten file crontab tunggal) dan itu bekerja dengan baik dengan alat manajemen konfigurasi dan itulah yang sudah dimiliki oleh manajer paket tetap melakukan.

Tugas/skrip di /etc/cron.[hourly |daily |weekly |monthly] selalu dieksekusi sebagai root, di mana cuplikan cron di /etc/cron.d/ memungkinkan pengaturan jadwal khusus serta menjalankan sebagai pengguna yang berbeda dengan <user> wajib yang sama bidang ditemukan di /etc/crontab .

Solusi 2:

Seingat saya, crontab -e memiliki keuntungan tambahan yaitu memverifikasi sintaks crontab sebelum menginstalnya, dan akan melakukan kesalahan dan memulihkan yang sebelumnya jika Anda melakukan kesalahan. Dengan cara ini, apa pun yang sebelumnya berfungsi tidak akan tiba-tiba berhenti jika sintaks Anda salah. Saya pikir praktik terbaik adalah menggunakan utilitas, seperti menjalankan visudo daripada mengedit /etc/sudoers langsung.

Solusi 3:

Ini benar-benar pertanyaan gaya, ada alasan mengapa beberapa metode ditawarkan oleh OS. Bersikaplah konsisten dan jangan mencampur dan mencocokkan jika Anda tidak ingin membingungkan orang lain (atau diri Anda sendiri setelah beberapa waktu tidak berurusan dengan sistem) - jika sulit untuk melihat tugas apa yang sebenarnya dijadwalkan di seluruh host, itu cenderung untuk berakhir dengan kejutan yang tidak menyenangkan.

Solusi 4:

Untuk memastikan penambahan cron job yang memerlukan hak user tertentu, saya pribadi menggunakan perintah berikut :

 # crontab -u <user> -e

Anda dapat menambahkan sudo juga.

Seperti yang dinyatakan @rackandboneman, tidak perlu dipusingkan dengan file /etc/cron.d/. Jika masalahnya tentang tugas cron pengguna, gunakan fitur crontab perintah.


Linux
  1. Bagaimana Mengedit File Konfigurasi?

  2. Bagaimana /etc/motd Diperbarui?

  3. Bagaimana memulihkan dari entri root yang dihapus di file /etc/shadow dan/atau /etc/passwd di CentOS / RHEL 6

  1. Pengguna Tidak Dapat Mengedit crontab, Kesalahan:"/tmp/crontab.Lm34gsJV:Izin ditolak"

  2. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  3. unix:///var/run/supervisor.sock tidak ada file seperti itu

  1. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  2. /etc/shadow di Mac

  3. Cara mengatur ssh tanpa kata sandi dengan kunci RSA