Apa file yang tepat untuk digunakan dan cara terbaik untuk melakukan ini?
crontab -e
adalah cara terbaik untuk melakukannya - ini akan memungkinkan Anda untuk mengedit crontab per pengguna dengan mudah.
Jika saya menjadwalkan tugas sebagai pengguna non-root saya, apakah itu akan berjalan dengan sendirinya pada interval waktu seperti yang ditentukan, tanpa masalah?
Ya, dan itu akan berjalan dengan hak istimewa dari akun pengguna itu.
Sebagai prinsip, yang terbaik adalah menjalankan tugas terjadwal dengan hak istimewa terendah yang bisa Anda dapatkan, jadi jika apa yang Anda lakukan tidak memerlukan root, jangan gunakan root. Jika Anda bahkan tidak perlu dapat mengakses file dan folder akun Anda , maka Anda dapat membuat pengguna baru dan menggunakan akun pengguna itu hanya untuk tugas itu. Di sisi lain jika tugas Anda memang membutuhkan root, gunakan crontab root ( su
/ sudo su
untuk root lalu gunakan crontab -e
).
Apakah saya perlu me-restart server setelah menyimpan pekerjaan cron di file crontab sebelum mulai bekerja?
Tidak, itu akan langsung bekerja (well, kemungkinan waktu berikutnya yang dijadwalkan)
Mengapa tidak mengedit file secara langsung? Di mana letaknya?
File crontab pengguna berada di /var/spool/cron/crontabs
, tetapi izin mereka diatur sedemikian rupa sehingga mereka tidak dapat dilalui tanpa izin pengguna super (tapi begitu terbuka dan proses cron menjatuhkan hak istimewa itu masih dapat mengakses file).
Sistem ini tidak dirancang untuk pengguna akhir untuk mengedit file-file ini secara langsung, dan memang bagian atas file memiliki DO NOT EDIT THIS FILE
peringatan keras di bagian atas untuk efek ini. File tersebut malah dirancang untuk diedit melalui crontab -e
yang mengatur mirror sementara dari file dalam /tmp
untuk mengedit - tanpa peringatan keras - setelah itu memeriksa dan menginstal file crontab permanen itu sendiri. Ini semua bisa dilakukan tanpa izin pengguna super.
Jika Anda mengedit file crontab secara langsung, saya tidak tahu apa hasilnya. Mungkin itu tidak akan berlaku sampai restart berikutnya dan kesalahan mungkin sulit untuk di-debug.
crontab -e
memungkinkan Anda mengedit crontab pengguna Anda tanpa sudo. Crontab pengguna berada di/var/spool/cron/crontabs
mana merupakan direktori yang tidak dapat diakses tanpa izin pengguna super (tetapi sedemikian rupa sehingga setelah cron menjatuhkan hak istimewa, ia masih dapat membacanya). Bahkan jika Anda menggunakan sudo untuk mencoba dan mengedit file secara langsung, Anda melihat peringatan besar di bagian atas, "JANGAN EDIT FILE INI" - file tersebut dirancang untuk diedit menggunakancrontab
perintah yang menggunakan salinan sementara di/tmp
kemudian instal setelah Anda simpan.Setiap pengguna memiliki itu sendiri
crontab
.Untuk melihatnya ketik saja
dan, ya Anda sudah melihatnya dengan benar, ketika Anda ingin menambahkan
crontab
maka lakukan sajauntuk pertama kalinya Anda akan ditanya tentang editor yang akan digunakan
crontab
. Karena Anda seorang pemula seperti yang Anda katakan, saya akan merekomendasikan untuk menggunakan nano, itu adalah editor paling sederhana untuk digunakan.Crontab itu sendiri berfungsi seperti ini
Jadi mis. Untuk memicu pekerjaan setiap 15 menit hanya pada hari Senin, Anda melakukannya seperti itu
dan YA, sangat penting bagi Anda untuk memasukkan cronjob ke crontab pengguna yang memiliki hak yang cukup untuk menjalankannya.
Jadi jika skrip Anda perlu root atau pengguna khusus, pastikan untuk su ke pengguna itu dan tambahkan cronjob di sana.
Juga sangat penting!
cronjob bodoh! Ya saya mengatakannya. Selalu pastikan untuk memasukkan PATH lengkap ke yang
application/command/script
Anda gunakan, karena crontab tidak akan berfungsi.bashrc
atau serupa. Anda selalu harus memastikan bahwa Anda memberi tahu cron di mana ia dapat menemukan file dan direktori.Untuk menjawab sisa pertanyaan Anda:
Tentu saja itu akan berjalan sendiri, itulah gunanya. Tetapi Anda perlu memeriksa bahwa cronjob benar-benar melakukannya, atau jika ada yang hilang. Misalnya login ke file log untuk melihat apakah itu benar-benar berfungsi.
Dan TIDAK, restart tidak diperlukan. Restart dengan linux biasanya hanya diperlukan, jika Anda menginstal kernel baru. Untuk menggunakannya, Anda harus reboot. Hampir semuanya dapat dilakukan tanpa reboot di Linux. Tentu saja ada pengecualian, tetapi secara umum pernyataan ini benar.
sumber