Як я можу тимчасово відключити роботу одного чи декількох користувачів у роботі з крон? Зокрема, я не хочу призупиняти права користувача на крон - просто не звільняти жодну їх роботу.
Я перебуваю на системах SLES 11 SP2 та SP3
Як я можу тимчасово відключити роботу одного чи декількох користувачів у роботі з крон? Зокрема, я не хочу призупиняти права користувача на крон - просто не звільняти жодну їх роботу.
Я перебуваю на системах SLES 11 SP2 та SP3
Відповіді:
touch /var/spool/cron/crontabs/$username; chmod 0 /var/spool/cron/crontabs/$username
повинен зробити трюк. Відновіть за допомогою ( chmod 600
і touch
вам потрібно змінити mtime файлу, щоб зробити cron (спроба) перезавантажити його).
Щонайменше з Debian і, мабуть, з Vixie cron в цілому, chmod 400 /var/spool/cron/crontabs/$username
також робиться трюк, оскільки ця реалізація наполягає на тому, щоб дозволи були рівно 600. Однак це триває лише до тих пір, поки користувач не запустить crontab
команду.
Якщо ви хочете отримати надійний спосіб, я не думаю, що є нічого кращого, ніж тимчасово перемістити їхні крони із шляху або змінити дозволи та тимчасово додати їх /etc/cron.deny
.
chmod
.
touch $username
після chmod
. Але це не допомогло. (Btw отримав вашу думку cron.deny
)
chgrp root /var/spool/cron/crontabs
Як щодо подібного відключити користувацький crontab:
crontab -l -u [username] >/tmp/[username].cron.tmp
crontab -r -u [username]
і знову включити:
crontab -u [username] /tmp/[username].cron.tmp
Це має додаткову перевагу в тому, що ви можете запустити його як цього користувача, не потребуючи root (просто зніміть параметр -u).
Якщо ви використовуєте Debian, це стосується лише Debian AFAIK :
Це можна зробити, додавши крапку до назви кроні.
Поведінка посилається на офіційні документи Debian:
https://www.debian.org/doc/debian-policy/#cron-job-file-name
Ім'я файлу завдання cron не повинно містити символів періоду чи плюс (. Або +), оскільки це призведе до того, що cron ігнорує файл. Підкреслити (_) слід використовувати замість. та + символів.
Якщо ви просто хочете на cron
деякий час повністю припинити всі завдання - наприклад, під час обслуговування системи, з якою вони можуть погано взаємодіяти - команди, як правило,
systemctl stop crond.service
і, щоб відновити
systemctl start crond.service
Я припускаю, що для їх виконання вам потрібні повноваження root або wheel; при необхідності запустіть їх через sudo або (остання можливість) увійти як root.
Перевищення конкретного поставленого питання, але забезпечує "єдину покупку" і не вимагає гри з файловою системою або тимчасовими файлами.
Я погоджуюся, шлях через systemctl повинен пройти. На малині пальці ніг були б
sudo systemctl stop cron.service
sudo systemctl start cron.service
cron
службу. ОП хотіла мати можливість вибирати кронові вкладки користувачів для відключення.
-u user
перемикачемcrontab
команди та поставити#
символ коментування перед завданнями, щоб відключити певного користувача?