Bagaimana cara saya menonaktifkan sementara satu atau lebih pekerjaan cron pengguna? Secara khusus, saya tidak ingin menunda hak cron pengguna - hanya tidak memecat pekerjaan mereka.
Saya menggunakan sistem SLES 11 SP2 dan SP3
Bagaimana cara saya menonaktifkan sementara satu atau lebih pekerjaan cron pengguna? Secara khusus, saya tidak ingin menunda hak cron pengguna - hanya tidak memecat pekerjaan mereka.
Saya menggunakan sistem SLES 11 SP2 dan SP3
Jawaban:
touch /var/spool/cron/crontabs/$username; chmod 0 /var/spool/cron/crontabs/$usernameharus melakukan trik. Pulihkan dengan chmod 600dan touch(Anda perlu mengubah waktu file untuk membuat cron (berupaya) memuatnya kembali).
Pada setidaknya Debian dan mungkin dengan cron Vixie secara umum, chmod 400 /var/spool/cron/crontabs/$usernamejuga melakukan trik, karena implementasi itu menekankan pada izin yang tepat 600. Namun ini hanya berlangsung sampai pengguna menjalankan crontabperintah.
Jika Anda menginginkan cara yang kuat, saya rasa tidak ada yang lebih baik daripada memindahkan crontab sementara atau mengubah izin, dan menambahkannya untuk sementara /etc/cron.deny.
chmod.
touch $usernamesetelah chmod. Tapi itu tidak membantu. (btw mengerti maksud Anda cron.deny)
chgrp root /var/spool/cron/crontabs
Bagaimana dengan hal seperti ini untuk menonaktifkan crontab pengguna:
crontab -l -u [username] >/tmp/[username].cron.tmp
crontab -r -u [username]
dan untuk mengaktifkan kembali:
crontab -u [username] /tmp/[username].cron.tmp
Ini memiliki keuntungan tambahan bahwa Anda dapat menjalankannya sebagai pengguna itu tanpa perlu root (cukup ambil parameter -u).
Jika Anda menggunakan Debian, ini hanya berlaku untuk Debian AFAIK :
Anda dapat melakukannya dengan menambahkan titik pada nama cronjob.
Perilaku disebutkan pada dokumen resmi Debian:
https://www.debian.org/doc/debian-policy/#cron-job-file-names
Nama file tugas cron tidak boleh menyertakan periode atau karakter plus (. Atau +) karakter karena ini akan menyebabkan cron mengabaikan file. Garis bawah (_) harus digunakan sebagai ganti. dan + karakter.
Jika Anda hanya ingin menghentikan semua cronpekerjaan untuk sementara waktu - misalnya, saat melakukan pemeliharaan sistem yang mereka mungkin berinteraksi dengan buruk - perintah biasanya
systemctl stop crond.service
dan, untuk melanjutkan
systemctl start crond.service
Saya kira Anda membutuhkan root atau otoritas roda untuk menjalankannya; jika perlu, jalankan melalui sudo atau (pilihan terakhir) login sebagai root.
Berlebihan untuk pertanyaan spesifik yang diajukan, tetapi memberikan "one-stop shopping" dan tidak perlu bermain dengan sistem file atau file sementara.
Saya setuju, jalur via systemctl adalah yang harus diambil. Pada raspberry, perintah kaki akan menjadi
sudo systemctl stop cron.service
sudo systemctl start cron.service
cronlayanan. OP ingin dapat memilih crontab pengguna mana yang akan dinonaktifkan.
-u usersakelarcrontabperintah dan meletakkan#karakter komentar di depan pekerjaan untuk menonaktifkan pengguna yang diberikan?