Haruskah saya menggunakan cron.hourly atau crontab?

9

Tampaknya semua saran untuk menggunakan / menjadwalkan awstats adalah melalui crontab, dengan demikian: 0 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=mysite -update >/dev/null(menjalankan awstats setiap jam).

Namun, jika saya periksa crontab -l, katanya crontab kosong untuk pengguna saya.

Namun, ketika saya memeriksa /etc/cron.hourly, saya punya file awstats dengan yang berikut:

#!/bin/bash
exec /usr/share/awstats/tools/awstats_updateall.pl now         -configdir="/etc/awstats"           -awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

Sekadar memberi tahu Anda, awstats saya diperbarui dengan baik, ia membuat laporannya, dan semuanya baik-baik saja.

Apakah menjalankan perintah crontab membuat entri di folder cron yang ditentukan? (mis. cron.hourly atau cron.daily, dll)? Atau apakah mereka tidak berhubungan? Jika mereka terkait, mengapa pengguna saya tanpa entri crontab?

minuman bersoda
sumber

Jawaban:

13

crontab -eadalah cara tradisional untuk membuat crontab. Saya merasa aneh dan kuno, tetapi orang masih menggunakannya.

/etc/cron.hourly, termasuk cron.daily, cron.weekly& /etc/cron.d, dll. disediakan oleh sebagian besar distro Linux karena nyaman dan bekerja dengan baik dengan alat otomatisasi seperti manajer paket dan sistem manajemen konfigurasi. Sangat mudah bagi manajer paket untuk memasukkan file /etc/cron.hourly/foodibandingkan dengan membuat skrip edit crontab yang ada. Mengedit file secara terprogram melalui manajer paket dapat merusak file, menambah entri duplikat, menghapus baris yang salah, mengacaukan komentar, dll. Lihat Editfiles Dianggap Berbahaya untuk beberapa diskusi, karena masalah ini telah ada untuk sementara waktu.

Apakah menjalankan perintah crontab membuat entri di folder cron yang ditentukan?

Tidak. /etc/cron.daily/fooDibuat oleh manajer paket, atau dibuat dengan tangan. Itu tidak dibuat ketika Anda menjalankan perintah crontab. crontab -eakan membuat crontab di bawah /var, seperti /var/spool/cron/root.

Saya lebih suka /etc/cron.$period/foodan /etc/cron.dkarena hierarki itu rapi dan teratur, dan mudah untuk skrip untuk sistem Manajemen Konfigurasi saya. /etc/crontabjuga tersedia di Linux, tetapi agak monolitik dan sulit untuk diedit secara terprogram. Sistem seperti dukungan FreeBSD /etc/crontabdan /etc/periodic.

Stefan Lasiewski
sumber
1
Terima kasih atas jawaban Anda, saya lebih suka juga, karena saya terbiasa menjatuhkan file config ke folder .d (mis. Conf.d, dll)!
Minuman bersoda
Saya hanya bisa menyetujui ini. Saya juga lebih suka menggunakan sistem /etc/crontabsaat menjalankan sistem taks alih-alih menggunakan crontab root. Dengan cara ini, orang dapat dengan mudah mengetahui apa yang sedang dilakukan sistem tanpa menggali di crontab masing-masing pengguna.
Spack
1
Saya setuju dengan jawaban ini. Mungkin menyebutkan beberapa perbedaan lain: /etc/cron.$ Period/ berisi skrip mandiri yang dijalankan oleh root pengguna. OTOH /etc/cron.d/ berisi file sertakan dalam crontab -eformat. Akhirnya, / etc / cron * dimaksudkan untuk me-root skrip, sementara crontab -etersedia untuk semua pengguna.
Nils Toedtmann
The crontab -eperintah canggung secara default. Jadi saya membuat skrip yang disebut cteyang melakukan dua perintah: export EDITOR=geditdan kemudian crontab -eeditor lebih mudah untuk dikerjakan.
SDsolar