Это утилитка, которая проверяет активен ли пользователь на Windows-машине и выполняет команду при изменении состояния. Предистория в нескольких частях:
1. Управление торрентами
2. Управление загрузкой торрентов
3. Почти интиллектуальное управление скоростью загрузки торрентов
И в этой части непосредственно рабочее решение (я надеюсь).
При запуске утилита ищет в рабочей директории файл конфигурации widle.cfg и не найдя его создаёт по-умолчанию:
# http://mytoiletserver.blogspot.com/ # # Enable debug messages debug_messages = 1 # Enable intrusive call commands in demonizer mode intrusive_call = 1 # Timeout to switch in IDLE real_idle_timeout = 120 # Pause in cycle for check IDLE status time_cycle = 10000 # Executing command in User-IDLE status command_idle = ssh.exe root@10.10.10.10 nohup /usr/local/bin/transmission-remote -as --auth transmission:mypass # Executing command in User-Active status command_active = ssh.exe root@10.10.10.10 nohup /usr/local/bin/transmission-remote -AS -pr 240 --auth transmission:mypass
5. Вывод дополнительной информации.
8. Навязчивый режим. Это, когда команды выполняются после каждой проверки состояния IDLE. В противном случае, команды посылаются только при изменении состояния. Навязчевый режим подходит для управления скоростью в смешанном режиме. Когда управляет ещё кто либо, например CRON.
11. Время инерции активности пользователя. Чувствительность в секундах.
14. Период проверки, мс.
17. Команда, выполняемая, при обнаружении спящего пользователя.
20. Команда, выполняемая, при активном пользователя.
Далее утилита выдаёт подсказку по ключам командной строки:
-h - this help -p - print IDLE to display and return IDLE-value in exit-code -i - interactive visualization IDLE -z - demonizer for execute command in cycle
Режим печати может быть полезен при использовании утилиты в составе скриптов. Она возвращает в коде значение IDLE и, конечно, в консоль. Режим визуализации бесполезен, но даёт представление об отсчёте IDLE-time в интерактивном режиме. И самый нужный режим - Демонайзер! В этом режиме в цикле происходит проверка состояния и выполняются те самые команды.
Сама утилита достаточно универсальна и выполнять команды может разнообразные. Но в нашем случае выполняется команда управлением скоростью закачки Transmission через SSH. Подразумевается, конечно, что сессия SSH авторизуется ключами. И тут меня ждал маленький сюрприз: Win7 and OpenSSH
Внимательный читатель заметит, что команды перепутаны местами. Именно поэтому сам экзешник я пока выкладывать не буду, надо ещё протестировать :)
Комментариев нет:
Отправить комментарий