1

У меня на сервере много пользователей, использующих одно и то же расписание cron, и это вызывает высокую нагрузку на сервер. Можем ли мы предотвратить это?

Например, если существует x номеров пользователей, которые используют следующее расписание cron: 0 1 * * * , возможно ли запретить будущим пользователям использовать такое же расписание cron?

3 ответа3

0

Почему бы просто не написать скрипт, который сравнивает все файлы cron пользователя и перемещает их, если они конфликтуют? если это найдено в нескольких crontabs 0 1 * * * для каждого существующего конфликта, измените минуты на 5 1 * * * и 10 1 * * * . Затем просто запустите этот скрипт в корневом файле crontab, чтобы он автоматически часто менял пользовательские файлы.

Если крайне важно, чтобы задания пользователей cron выполнялись в указанное время, вам нужно взглянуть на использование ограничений PAM.

0

Если ваши пользователи просто намерены выполнять ночные задачи, решение, основанное на запуске их ~/nightly.sh, может быть проще.

Затем вы будете запускать «/home/*/nightly.sh», один за другим. Конечно, вам придется запускать скрипт каждого пользователя с его собственными разрешениями и в приемлемой среде (cron делает это).

Но это может быть довольно просто. Например:

for user in user0 user1 user2 user3 ... 
do 
   script=/home/$user/nightly.sh
   [ -x $script ] || continue 
   sudo -u $user  2>&1 | mail -s "nightly.sh" $user 
done
0

Вы можете назначить cron для каждой учетной записи пользователя:

crontab -e -u user

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .