Perbedaan antara / etc / crontab dan “crontab -e”

42

Apa perbedaan antara crontab yang terletak di /etc/crontabdan crontab yang dapat diedit menggunakan crontab -e?

jrdioko
sumber

Jawaban:

51

Seperti yang dikatakan Ignacio, /etc/crontabadalah sistem lebar crontab.

Formatnya /etc/crontabseperti ini:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

sementara crontab -eper pengguna, perlu disebutkan tanpa -uargumen perintah crontab pergi ke pengguna crontab saat ini. Anda dapat melakukannya crontab -e -u <username>untuk mengedit crontab pengguna tertentu.

Pemberitahuan dalam crontab per pengguna tidak ada bidang 'pengguna'.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

Aspek crontab yang mungkin membingungkan adalah root juga memiliki crontab sendiri. mis. crontab -e -u roottidak akan mengedit /etc/crontab Lihat Mengonfigurasi cron .

Di sebagian besar distro Linux, crontab per pengguna biasanya disimpan di: /var/spool/cron/crontabs/<username>(vixie-cron).

Distribusi berbasis RHEL disimpan di /var/spool/cron/<username>. (cronie)

pemain skrewler
sumber
FYI, jalur yang diberikan di atas salah: crontab per-pengguna disimpan di / var / spool / cron / crontab / <username> (Saya mencoba dua kali untuk mengirimkan koreksi sederhana ini.)
MartyMacGyver
1
... dan sudah diperbaiki sekarang.
MartyMacGyver
Sebenarnya, ini disimpan di /var/spool/cron/rootuntuk crontab per pengguna root pada sistem RHEL 6. Belum memeriksa Ubuntu, tetapi mengatakan "biasanya" tampaknya agak sulit.
Wildcard
@Wildcard Saya pikir "biasanya" adalah kata yang adil untuk digunakan. Distro RHEL dikirimkan bersama "cronie" (dan anacron, saya percaya) yang merupakan cabang dari cron ISC-Cron / vixie. Saya rasa itu bukan peregangan, dalam hal apa pun saya telah memperbarui jawaban saya untuk memasukkan lebih detail.
pemain skrewler
Untuk pencarian cepat jalur di distro, cari string path[crontabs]di pustaka "jalur" CFEngine dan periksa konteksnya (garis konteks sebelumnya terlihat seperti misalnya redhat::). Ada lebih banyak variasi daripada yang Anda pikirkan; misalnya SUSE menempatkan mereka /var/spool/cron/tabs. (Abstraksi perbedaan distro adalah salah satu alasan CFEngine awalnya dibuat, jadi ini sering menjadi referensi yang bagus.)
Wildcard
5

Salah satunya adalah sistem crontab dan hanya dapat diedit oleh root, dan yang lainnya adalah pengguna crontab dan dapat diedit oleh pengguna dan ada per pengguna.

Ignacio Vazquez-Abrams
sumber