Создание сценария для изменения нескольких пользователей crontabs

Я выполняю поле семени как локальная машина с установкой Ubuntu 14.04LTS с многопользовательским rtorrent/rutorrent.

Я установил это через сценарий, который также установил crontab записи для каждого пользователя так rtorrent, и irrsi запустится автоматически при начальной загрузке.

Загрузка слишком высока (особенно в сети), если все пользователи rtorrent/irrsi работают одновременно. Таким образом, я начал

su - user
password
crontab -e

И затем прокомментируйте эти rtorrent/irrsi строки для пользователей A-D и не прокомментируйте их для пользователей E-H.

Позже ночью, когда я возвращаюсь из работы, я делаю то же, но некомментирую эти строки для пользователей A-D и комментирую эти строки для пользователей E-H.

Все это редактирование сделало меня начинающий задаваться вопросом, не было ли более легкого способа выполнить это... Там был бы способ создать сценарий, который добавляет # перед всеми строками в crontab всех пользователей, которых я указываю. И затем возможно, второй сценарий для удаления этого # (если есть).

Править: crontab каждых пользователей содержит только эти 2 строки.

@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent
*/5 * * * * /usr/local/bin/rtcheck irssi rtorrent

Когда я не хочу, чтобы они были выполнены в перезагрузке или позже, когда крон находит их не выполнением, я просто комментирую эти строки, таким образом, они похожи на это:

#@reboot sleep 10; /usr/local/bin/rtcheck irssi rtorrent
#*/5 * * * * /usr/local/bin/rtcheck irssi rtorrent

не делая его эффективно ни irssi, ни rtorrent не запускают начальную загрузку, ни начинают позже, когда крон находит их не выполнением.

0
задан 27 August 2017 в 12:26

1 ответ

Вероятно, самый простой способ сделать это с cron к:

  • запускают сервис потока во время, T1 для каждого пользователя в группе пользователей
  • останавливают сервис потока во время T2>, T1 для пользователей в группе A
  • запускают сервис потока во время T2>, T1 для пользователей в группе B
  • останавливают сервис потока во время T3>, T2 для пользователей в группе B

Выбирают времена, например,

  • , T1 где угодно между 0:01 и 13:59 в день Д
  • , T2 является 14:00 в день Д
  • , T3 является 23:59 в день Д

, можно изменить это так или иначе, Вам нравится делать разделение по времени равноправным для всей группы A и пользователей B.

Для пользователя "имя пользователя" в группе A:
1) Редактирование, существующее crontab записи путем комментирования их. Не стирайте их, просто комментируют их так, они не стреляют.
2) Добавляют новый crontab записи:

# => either start daemon, while checking that (i) startup takes place between 0:01 am
#+ and 2:00pm and (i) no 'rtorrent' process owned by "username" already runs. 
*/10 0-14 * * * [ -z $(/bin/ps -eF | /usr/bin/awk '/rtorrent/ && /username/') ] && /sbin/start-stop-daemon -S /usr/local/bin/rtorrent  
# => or start client-app based on similar conditions
*/10 0-14 * * * [ -z $(/bin/ps -eF | /usr/bin/awk '/rtorrent/ && /username/') ] && /usr/bin/env DISPLAY=:0.0 /usr/local/bin/rtorrent  

# stop 'rtorrent' process if it exists and is owned by "username"
#+ Check every 5 minutes between 2pm and midnight
*/5 14-24 * * * /usr/bin/kill "$(/bin/ps -eF | /usr/bin/awk '/rtorrent/ && /username/ printf "%s",$2')"  > /dev/null 2>&1

Детали команды, начинающей Вашего демона, будут зависеть от ряда факторов, например, является ли клиент, запускающийся rtorrent, машиной отдельного пользователя или могут ли несколько пользователей одновременно выполнить их собственный экземпляр rtorrent. В этом случае можно хотеть сохранить pid процесса в файле выполнения для каждого пользователя, таким образом, можно справиться с теми процессами как со смазыванием нагрузки по трафику. Взгляд это для фактического запуска rtorrent пользователь идентификации процесса сокет и pid

я мог не , попробовал это решение, таким образом, это - что-то вроде набега в темноте, что касается корректной процедуры запуска. В особенности я предполагаю, что Ваш /home/username/.rtorrent.rc соответственно настроен, и что irssi не дает Вам проблемы, как детализировано в другом месте .

HTH. Сообщите.

0
ответ дан 28 September 2019 в 19:13

Другие вопросы по тегам:

Похожие вопросы: