Вы можете назначить cron для каждой учетной записи пользователя:
crontab -e -u user
У меня на сервере много пользователей, использующих одно и то же расписание cron, и это вызывает высокую нагрузку на сервер. Можем ли мы предотвратить это?
Например, если существует x номеров пользователей, которые используют следующее расписание cron: 0 1 * * *
возможно ли запретить будущим пользователям использовать одно и то же расписание cron?
Вы можете назначить cron для каждой учетной записи пользователя:
crontab -e -u user
Why not simply write a script that compares all the user's cron files and moves them on if they conflict? if this is found in several crontabs 0 1 * * *
for each conflict that exists change move the minutes along 5 1 * * *
and 10 1 * * *
. Then simply run this script in the root crontab so that it automatically changes user crontabs often.
If it is crucial that users' cron jobs run at the times they specified you will have to take a look at using PAM limits.
Если ваши пользователи просто намерены выполнять ночные задачи, решение, основанное на запуске их ~ / 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