Apa cara yang benar untuk mengedit file crontab?

Saya mencoba untuk mengotomatisasi menyegarkan dari awstats untuk webserver saya dan memahami bahwa saya perlu menggunakan cron untuk mengatur itu. Jadi setiap user memiliki file crontab?

Saya mengikuti petunjuk di sini masyarakat/AWStats

Dan ia mengatakan untuk pergi ke file di: /etc/crontab

File yang sudah memiliki beberapa informasi di dalamnya. Ini adalah utama crontab file atau sesuatu? Saya telah melihat beberapa petunjuk online untuk menggunakan file yang muncul dengan crontab -e .

Apa file yang tepat untuk menggunakan dan cara terbaik untuk melakukan ini?

Jika saya menjadwalkan tugas saya sebagai non-root pengguna, itu akan berjalan dengan sendirinya pada interval waktu yang ditentukan, dengan tidak ada masalah?

Aku akan perlu untuk me-restart server setelah menyimpan cron job di crontab file sebelum itu akan mulai bekerja?

Apa itu file yang tepat untuk menggunakan dan cara terbaik untuk melakukan ini?

crontab -e adalah cara terbaik untuk melakukannya - ini akan memungkinkan anda untuk dengan mudah mengedit per-user crontabs.

Jika aku menjadwalkan tugas saya sebagai non-root pengguna, itu akan berjalan dengan sendirinya pada interval waktu yang ditentukan, dengan tidak ada masalah?

Ya, dan itu akan berjalan dengan hak akses pengguna akun.

Sebagai prinsip, yang terbaik adalah untuk menjalankan tugas yang dijadwalkan dengan terendah hak anda bisa lolos dengan, sehingga jika apa yang anda lakukan tidak akan memerlukan root, don't menggunakan root. Jika anda don't bahkan perlu untuk dapat mengakses anda account's file dan folder, maka anda dapat membuat user baru dan menggunakan akun pengguna yang hanya untuk tugas itu. Di sisi lain jika tugas anda tidak membutuhkan root, gunakan root's crontab (su / sudo su ke root kemudian menggunakan crontab -e).

Saya akan perlu untuk me-restart server setelah menyimpan cron job di file crontab sebelum itu akan mulai bekerja?

Tidak ada itu'll mulai bekerja langsung (nah, berikutnya mungkin waktu yang dijadwalkan).

Mengapa tidak langsung mengedit file? Di mana itu terletak?

Pengguna crontab file berada di /var/spool/cron/crontabs, tapi mereka izin yang diatur sedemikian rupa sehingga mereka dapat't akan dilalui tanpa izin superuser (tapi sekali buka dan cron proses tetes hak itu masih bisa mengakses file).

Sistem ini tidak dirancang untuk pengguna akhir untuk mengedit file-file ini secara langsung, dan memang atas file yang telah tegas TIDAK MENGEDIT FILE INI warning di atas untuk efek ini. File ini bukan dirancang untuk diedit melalui crontab -e yang menetapkan sebuah cermin sementara dari file /tmp untuk editing - tanpa peringatan keras - setelah itu cek dan menginstal permanen crontab file itu sendiri. Ini semua dapat dilakukan tanpa izin superuser.

Jika anda melakukan edit file crontab langsung saya don't tahu apa hasilnya akan. It's mungkin itu hanya tidak't berlaku sampai restart berikutnya dan setiap kesalahan yang mungkin sulit untuk debug.

Komentar (1)

Setiap pengguna memiliki itu's sendiri crontab.

Untuk melihat itu hanya jenis

crontab -l

dan, ya, anda've melihat itu benar, ketika anda ingin menambahkan crontab maka cukup lakukan

crontab -e

untuk pertama kalinya anda'akan ditanya tentang editor untuk digunakan dengan crontab. Karena anda adalah seorang newbie seperti yang anda katakan, aku'd sarankan untuk menggunakan nano, it's sederhana editor untuk digunakan.

Crontab itu sendiri bekerja seperti ini

MIN =  Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW =  Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line

Jadi misalnya untuk memicu sebuah pekerjaan yang setiap 15 menit di hari senin, anda melakukannya seperti begitu

*/15 * * * mon /home/me/yourscript.sh

dan YA itu's sangat penting bahwa anda menempatkan anda cronjob ke crontab user yang memiliki hak yang cukup untuk melaksanakannya.

Jadi jika naskah anda perlu menjadi root atau pengguna khusus, pastikan untuk su untuk pengguna dan menambahkan cronjob di sana.

Juga sangat penting!

cronjob adalah bodoh! Ya aku mengatakan itu. Selalu pastikan untuk memasukkan PATH lengkap ke aplikasi/perintah/script yang anda gunakan, karena crontab won't bekerja dengan .bashrc atau yang sejenis. Anda harus selalu memastikan bahwa anda memberitahu cron di mana ia dapat menemukan file dan direktori.

Untuk menjawab seluruh pertanyaan anda:

Tentu saja itu akan berjalan pada itu's sendiri, yang's apa itu's ada untuk. Tapi anda perlu memeriksa bahwa cronjob benar-benar melakukan itu, atau jika itu's sesuatu yang hilang. E. g. log masuk ke logfile untuk melihat apakah itu benar-benar bekerja.

Dan TIDAK, restart tidak diperlukan. Restart dengan linux biasanya hanya diperlukan, jika anda menginstal kernel baru. Untuk itu digunakan anda'd perlu reboot. Hampir segala sesuatu yang lain dapat dilakukan tanpa reboot di Linux. Tentu saja ada pengecualian, tetapi secara umum ini adalah pernyataan yang benar.

Komentar (1)