Pada berbagai sistem yang saya kelola, ada skrip cron yang dijalankan melalui /etc/cron.{hourly,daily,weekly}
tata letak yang umum digunakan . Yang ingin saya ketahui adalah apakah ada fungsionalitas umum 'nonaktifkan skrip ini'.
Jelas, hanya menghapus sesuatu dari direktori yang diberikan akan menonaktifkannya, tapi saya sedang mencari solusi yang lebih permanen. Menghapus /etc/cron.daily/slocate
akan berfungsi untuk menonaktifkan nightly updatedb
pada mesin rumah saya (di mana saya tidak pernah menggunakan slocate
), tetapi lain kali saya memutakhirkan paket slocate, saya cukup yakin itu akan muncul kembali.
Dua distribusi yang paling menarik bagi saya adalah Gentoo dan OpenSUSE, tetapi saya berharap ada mekanisme yang diterapkan secara luas. Kedua distro karena saya minta mereka menggunakan vixie-cron (tidak yakin itu penting).
sumber
chattr +i scriptname
setelahchmod
.lsattr
- untuk menghapus menakutkan (itu daftar atteibutes file).run-parts tidak menjalankan pekerjaan yang memiliki titik pada namanya, jadi
akan melakukan trik.
sumber
Biasanya
cron.daily
dipanggil melalui/etc/crontab
garis seperti misalnyarun-parts --report /etc/cron.daily
man run-parts
memberi Anda pilihan.run-parts --test /etc/cron.daily
menunjukkan pekerjaan yang dieksekusi tanpa menjalankannya.Saya lebih suka membuat subdir 'Dinonaktifkan' dan memindahkan pekerjaan saya di sana.
Dalam kasus apa pun jika Anda memperbarui suatu paket, kemungkinan besar pekerjaan tersebut akan diberlakukan kembali atau bit 'x' yang dihapus dipulihkan
sumber
Anda dapat menghapus paket slocate jika Anda tidak pernah menggunakannya.
sumber
Jika Anda menggunakan cfengine ( https://cfengine.com/ ) Anda bisa melakukan ini dengan menonaktifkan. Anda hanya menulis file janji untuk sekelompok host dan itu akan berlaku sendiri dalam menjalankan cfagent berikutnya. Melakukan ini dengan boneka atau koki atau apa pun juga seharusnya cukup sederhana.
sumber
The /etc/cron.daily et. Al. skrip dijalankan oleh skrip yang disebut run-parts. Naskah itu beragam. Misalnya saklar --test yang disebutkan di atas tidak ada di mesin yang saya gunakan saat ini.
Run-parts adalah skrip bash. Ini alat yang umumnya berguna untuk menjalankan semua skrip di direktori yang diberikan sebagai argumen. Biasanya ditemukan di / usr / bin / run-parts.
Ini memiliki kusut logika untuk memutuskan apa yang harus dijalankan. Kode itu menyimpan jawaban untuk pertanyaan Anda, tetapi juga bervariasi. Jadi, Anda perlu membaca kode untuk aman.
Dalam versi yang saya lihat itu memiliki logika bahwa, ketika bekerja pada direktori <foo>, memeriksa <foo> /jobs.deny. Jika ada, ia menolak untuk menjalankan skrip apa pun yang disebutkan dalam file itu pada satu baris, sendirian. Anggap Anda memiliki fungsi ini luar biasa karena akan tetap berfungsi ketika paket yang menginstal diinstal atau ditingkatkan.
sumber
Jika berurusan dengan RHEL dan turunannya (yang menyediakan
crontabs
paket), Anda dapat secara eksplisit menonaktifkan pekerjaan dengan memasukkan namanya ke dalamjobs.deny
file.Dari halaman manual crontab / run-parts :
sumber
Jika Anda tidak menginginkan crontab pengguna juga, cukup nonaktifkan crond di daftar layanan Anda.
Dalam Debian dan versi berdasarkan Debian ini hanyalah masalah menghapus symlink dari /etc/rcX.d yang sesuai (untuk runlevel X).
Saya tidak tahu bagaimana Anda menangani layanan di SUSE atau Gentoo.
sumber