Jika saya memerlukan cronjob yang berjalan pada level sistem (yaitu tidak spesifik untuk pengguna tertentu) bagaimana Anda menyarankan saya untuk membuatnya?
- berjalan
crontab -e
sebagai root - menambahkannya ke
/etc/crontab
- membuat file yang mendefinisikan cronjob di
/etc/cron.d/
- membuat file yang mendefinisikan cronjob
/etc/cron.*ly/
(tetapi hanya jika interval waktu seperti itu sesuai dengan kebutuhan saya)
Yang paling mengkhawatirkan saya adalah: solusi mana yang mungkin ditimpa oleh pembaruan sistem ?
Tambahan saya rasa jika pekerjaan itu lama saya harus meletakkannya di file skrip yang terpisah , misalnya di /root/bin/
. Apa kamu setuju?
Jawaban:
Jangan gunakan
crontab -e
Saya tidak akan memasukkannya
crontab -e
sebagai root. Ini umumnya kurang jelas bagi admin lain dan cenderung hilang seiring waktu. Memasukkannya ke dalam/etc/crontab
Anda dapat menentukan waktu yang Anda inginkan untuk menjalankannya dan Anda juga dapat menentukan pengguna yang berbeda.Lokasi alternatif
Jika Anda tidak peduli menjalankan skrip sebagai pengguna yang berbeda, dan / atau Anda hanya ingin skrip dijalankan setiap minggu, setiap hari, dll. Maka beberapa distribusi menyediakan direktori tempat skrip dapat ditempatkan yang secara otomatis akan diproses pada waktu tertentu.
Misalnya di bawah distro berbasis Redhat:
Saya akan sering kali menempatkan cron level sistem yang ingin saya jalankan pada waktu tertentu,
/etc/cron.d
bukan/etc/crontab
, terutama jika skrip-skrip itu lebih rumit.Saya lebih suka menggunakan direktori di bawah
/etc/cron*
karena mereka adalah tempat yang jauh lebih jelas yang akan dilihat oleh administrator sistem lain dan file-file di sini dapat dikelola melalui instalasi paket sepertirpm
dan / atauapt
.Melindungi entri
Setiap direktori yang saya sebutkan ditujukan untuk meletakkan skrip yang tidak akan dihancurkan oleh manajer paket. Jika Anda khawatir tentang melindungi entri crontab, maka saya pasti tidak akan memasukkannya ke dalam
/etc/crontab
file, dan sebaliknya meletakkannya sebagai skrip yang tepat di salah satu/etc/cron*
direktori.sumber
Saya akan memilih # 4. Ini memungkinkan pengaturan sistem memilih kapan harus menjalankan pekerjaan, dan biasanya mereka melakukan pekerjaan dengan baik "berjalan saat tidak sibuk". Mengubah penjadwal cron sistem juga akan secara otomatis mempengaruhi waktu berjalan skrip.
Sisi buruknya adalah Anda tidak memiliki kendali langsung atas kapan dijalankan. Jika Anda membutuhkan lebih banyak kontrol langsung maka gunakan # 1.
1 kemungkinan besar akan ditimpa oleh pembaruan sistem. Padahal 3 dan 4 harusnya cukup aman. itu semua tergantung pada bagaimana Anda memperbarui. Distro Anda dapat memperbarui apa pun yang diinginkannya, tetapi hanya 2, yang biasanya beresiko ditimpa.
Akhirnya, saya akan meletakkan skrip di / usr / local / bin. Itu adalah tempat "normal" saya meletakkan hal-hal di seluruh sistem yang tidak dikelola oleh manajer paket distro. / root / bin juga dapat diterima jika hanya akan dijalankan oleh root. Namun ini semua kebanyakan rasanya.
sumber
Salah satu di atas akan berfungsi, dan tidak satu pun di atas harus ditimpa oleh pembaruan. Pilihan sebenarnya datang ke pendapat - tiga orang yang berbeda akan sering memiliki setidaknya dua atau tiga jawaban yang berbeda.
sumber