Ашот Асланян, перечитай внимательно, что тебе советуют. Сейчас ты явно не пытаешься вникнуть.
C:\Program Files\PuTTY\plink.exe -ssh xx.xx.xx.xx -l aro555 -pw ****PASSWORD**** sudo -i reboot
| эта часть обеспечивает подключение и передачу команды на удалённый сервер | передаваемая команда
Просто замени передаваемую команду на shutdown -r now. Если файл /etc/shutdown.allow настроен так, чтобы позволять пользователю aro555 выполнять shutdown, то ничего программа не спросит.
Emince, да, он срабатывает по два раза.
Поэтому нужен свой таймаут на реакцию. Т.е. если обработчик последний раз срабатывал менее чем N секунд назад, просто игнорируем это срабатывание, иначе делаем дело и запоминаем новое последнее время.
Это позволит также избежать спама при слишком частом сохранении файла. Ну мало ли что другая программа с этим файлом делает...
Emince, может, скрипт реагирует на разные события. Я бы сделал так: pathlib.Path(event.src_path).name == 'file.txt'
И добавил бы таймаут на обновления.
Зависит от роутера.
Но если я верно помню, начальный/конечный открывают ДИАПАЗОН портов. Просто укажи одно и то же значение для них.
Тебе нужно указать внешний порт, на который будет стучаться клиент, внутренний IP и внутренний порт, которые будет слушать сервер. Удалённый IP вроде не надо указывать.
ArtyomMedved, и смотреть не стану. Ролики лучше вообще сразу выкинуть. Даже если они написаны без явных ошибок (а-ля "исправил за кадром, рассказать забыл"), зачастую рекомендации по построению программы там те ещё. А даже если норм, ролик может использовать устаревший вариант библиотеки, где что-то поменялось (привет, aiogram). Документацию обновляют хотя бы, а ролик записал, просмотры набил, и забыл.
Лучший источник - найти официальные примеры кода от создателей библиотеки и постепенно адаптировать их под свои нужды, пока не освоишься с используемыми инструментами. После этого можно попробовать переписать код с нуля. Если не получается - лезь в документацию (опять привет, aiogram). Если документация невнятная - поищи по stackoverflow, только обязательно проверяй год ответа. Лучше не старше пары лет.
И только если и это не поможет, тогда начинай спрашивать сам.
А если по теме: если файл db.py - часть твоего проекта, то проблема - внутри него. А ты его содержимого не привёл.
Jnex8dje, взять и сохранить. Какое хранилище использовать - зависит от задачи.
Если кулдаун команды один на всех (т.е. неважно кто её вызвал последним) - сойдёт одна переменная.
Если нужен свой кулдаун для каждого пользователя - значит, что-то типа словаря {id пользователя: время активации}.
Если нужно, чтобы это ещё и сохранялось при перезапуске бота - значит, нужно персистентное хранилище типа простой БД.
ganstar565, у тебя, возможно, не установлен пакет python3.11-dev (ну или какая тебе нужна версия питона). Кроме того, может пригодиться portaudio19-dev.
Просто замени передаваемую команду на
shutdown -r now
. Если файл/etc/shutdown.allow
настроен так, чтобы позволять пользователю aro555 выполнять shutdown, то ничего программа не спросит.