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/$username
harus melakukan trik. Pulihkan dengan chmod 600
dan 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/$username
juga melakukan trik, karena implementasi itu menekankan pada izin yang tepat 600. Namun ini hanya berlangsung sampai pengguna menjalankan crontab
perintah.
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 $username
setelah 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 cron
pekerjaan 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
cron
layanan. OP ingin dapat memilih crontab pengguna mana yang akan dinonaktifkan.
-u user
sakelarcrontab
perintah dan meletakkan#
karakter komentar di depan pekerjaan untuk menonaktifkan pengguna yang diberikan?