Apakah buruk mengedit file cron secara manual?

12

Biasanya diperintahkan untuk memperkenalkan pekerjaan cron baru melalui baris perintah; tapi saya merasa lebih mudah (dengan kontrol yang lebih baik dari tugas cron saat ini) untuk mengedit secara manual (dalam editor teks) seperti file cron pengguna /var/spool/cron/crontabs/root.

Apakah berbahaya mengedit file dalam editor teks?

Komentar dalam file default membingungkan. Baris pertama mengatakan

# DO NOT EDIT THIS FILE - edit the master and reinstall.

Namun baris keempat mengatakan

# Edit this file to introduce tasks to be run by cron.
Googlebot
sumber
2
Mengapa tidak meletakkan saja di bawah /etc/cron.d?
Zoredache
Ini bisa menjadi ide yang bagus; tapi saya tidak bermaksud file mana yang akan diedit, saya membandingkan mengedit file dengan editor atau menjalankan perintah crontab.
Googlebot
@ Semua Saya kira satu-satunya perbedaan adalah pemeriksaan sintaks yang dibuat oleh crontab-e. Ini hanya buffer teks dengan pemeriksaan sintaksis. Anda juga dapat mengubah editor biasa dan crontab-e akan dimuat ke dalamnya. Yang penting pada xyntax, adalah karena semua file akan diabaikan jika Anda melakukan kesalahan. Bahkan jika Anda menggunakan alat eksternal, Anda harus menggunakan crontab-e untuk membaca file, dan mengirimkannya kembali ke crontab-e saat selesai. Dengan begitu Anda tidak perlu khawatir tentang sintaksis lagi. Lebih baik untuk membagi file dari tugas pengguna dan sistem, jadi Anda harus menggunakan /etc/cron.d lebih baik untuk tugas pengguna / tes.
m3nda

Jawaban:

22

Jika Anda memodifikasi file pengguna di bawah crontab, itu akan berfungsi. Namun, ada dua masalah yang harus dipertimbangkan:

  1. Jika Anda salah mengetik entri cron dalam file, Anda tidak akan diperingatkan sebagai lawan menggunakan crontab -eperintah.
  2. Anda tidak dapat mengedit file pengguna Anda di bawah crontab secara langsung tanpa login sebagai root atau menggunakan sudo. Anda akan mendapatkan izin ditolak kesalahan.

Edit

Satu hal lagi untuk ditambahkan. Ketika Anda mengedit file secara langsung, Anda mungkin diperingatkan oleh editor teks jika Anda membuka file dua kali (dua pengguna mengakses file yang sama). Namun, daftar cron akan ditimpa ketika menggunakan crontab -edari dua sesi shell yang berbeda dari pengguna yang sama. Ini perbedaan lain.

Khaled
sumber
poin yang sangat halus! Saya tidak pernah menghadapi (tahu) masalah kedua, karena saya selalu bekerja sebagai root.
Googlebot
4
Juga, "jangan edit" di file default adalah karena upgrade / instal ulang mungkin menimpa file itu.
Chris S
Anda gagal menyebutkan bahwa pengguna yang mengedit crontab secara langsung kehilangan pemeriksaan santax yang crontab -emenyediakan.
Adam F
1
@AdamF: Ini yang poin 1 bicarakan!
Khaled
8

Jika saya mengerti benar, Anda mengedit file secara manual dengan editor teks karena Anda tidak ingin menggunakan crontab -e. Saya kira itu karena menggunakan vi sebagai editor dan Anda tidak terbiasa dengannya.

Anda mengubah crontab -e (dan hal-hal lain yang memerlukan editor) untuk menggunakan editor nano yang lebih akrab dengan menjalankan

export EDITOR=nano

sebelum

crontab -e

Anda dapat menjadikan nano sebagai editor default permament dengan mengedit file ~ / .bash_profile Anda untuk disertakan export EDITOR=nanodi bagian akhir.

Untuk menjawab pertanyaan Anda, Anda tidak boleh mengedit file secara langsung karena mungkin akan ditimpa tanpa Anda sadari. Baris ke-4 mengatakan apa yang dikatakannya karena itu berasal dari crontab yang seharusnya Anda edit secara manual (itu akan mengatakan itu sebagai baris pertama).

Jonathan Amend
sumber
Terima kasih atas balasan deskriptif. Saya sepenuhnya akrab dengan editor perintah crontab vi; tapi saya menggunakan gedit (bukan di terminal ssh), karena saya langsung terhubung ke server dari desktop linux saya.
Googlebot
Saya juga merekomendasikan untuk menambahkan perintah ekspor EDITOR ke dalam file bashrc Anda untuk menghindari menulisnya setiap kali Anda masuk ke ssh.
m3nda
1
export VISUAL=vi

Ini adalah cara yang benar untuk mengubah editor untuk crontab.

pengguna981836
sumber