Русские Блоги
Операция Python God: дистанционное включение и выключение
Вы, наверное, слышали или практиковали завершение работы с Python, так как насчет загрузки с Python? Это волшебный метод, который учит вас, как использовать Python для загрузки.
Цель этой статьи
- Принцип удаленной загрузки
- Реализация кода удаленной загрузки Python
- Инструкция по отключению Python
Больше Python видео, исходный код, данные плюс группа 960410445 бесплатно
Python boot
Как использовать программу для загрузки? Это технология WOL Wake-On-Lan. Когда компьютер выключен или находится в спящем режиме, сетевая карта и часть материнской платы по-прежнему имеют слабый источник питания. Конечно, источник питания должен быть подключен и подключен. Таким образом, даже в случае выключения сетевая карта по-прежнему обладает определенной способностью работать, вы можете прослушивать информацию онлайн-трансляции за пределами компьютера, и когда информация определенного формата будет найдена, она запустится.
Теперь материнские платы в основном поддерживаются. Нужно только настроить следующие два параметра в свойствах сетевого адаптера
Следующее изображение не может быть проверено. Мы должны убедиться, что сетевая карта по-прежнему имеет электропитание после выключения. Если вы выключите индикатор сетевого порта, он не будет работать. Держите индикатор сетевого порта включенным.
Эти конкретные данные также имеют хорошее название, называемое Magic Packet (Волшебный пакет). Обычно используется протокол UDP для трансляции. Обычно это порт 7 или 9. Волшебные пакеты всегда используют «FF FF FF FF FF FF» для 6 «FF», за которыми следует информация MAC-адреса. Как только сетевая карта обнаружит содержимое пакета, она разбудит целевой компьютер.
Давайте посмотрим, как писать код. Код включает в себя сетевое программирование UDP, и позже мы напишем содержание сетевого программирования. Для этой функции требуется только ввести MAC-адрес целевого компьютера.В локальной сети (конечно, если ваш компьютер имеет общедоступный IP-адрес, то он также может быть в общедоступной сети) запустите эту программу на другом компьютере, целевой компьютер может Включить автоматически.
Код выглядит следующим образом, сам код очень короткий, а принцип очень прост:
Выключение Python
Отключение относительно проще, и в Интернете есть много готовых решений. Большинство программ используют программу для сканирования почтовых ящиков. Если вы получаете электронные письма, связанные с ключевыми словами завершения работы, программа автоматически выполняет команду завершения работы.
Кроме того, если вы просто выключились в локальной сети или у вас есть общедоступный IP-адрес, вы также можете запустить службу на локальном компьютере, например Flask, работающую на порту 5000. Просто отправьте инструкцию на адрес 5000. Команда для выполнения выключения требуется в родной программе
Выключение сервера, находящегося в локальной сети
Всем добрый день. У меня написан скрипт, который парсит логи одной из программ и, при нахождении одного из событий, посылает команду на выключение одного из серверов, находящихся в локальной сети.
Если запустить скрипт из командной строки с помощью команды
C:\Python37\python.exe C:\shut.py
всё работает и нужный сервер выключается.
Если я создаю задачу в планировщике windows, то происходит следующее: скрипт запускается, но сервер не выключается. Выключение сервера осуществляю так:
os.system("shutdown /s /f /t 0 /m \\\\192.168.12.147")
, но это тоже не сработало.
Повторюсь, скрипт отлично работает при ручном запуске и при запуске из командной строки, но не работает при запуске через планировщик windows. Вернее, сам скрипт запускается, но выключения машины не происходит.
В чем может быть дело ?
Если нужно больше информации или полный код скрипта, то готов предоставить
Обращение к файлу программно находящегося на другом компьютере в локальной сети
Приветствую! Подскажите как можно из какой либо процедуры обратиться к файлу находящегося на.
Удаленное выключение компьютеров по локальной сети
Добрый вечер. Не так давно у меня возник вопрос и я задался целью об одновременном выключение.
Статистика выключение компьютера по локальной сети
Здравствуйте. 2 вопроса. Как можно выключить компьютер по локальной сети? На всех компах.
Выключение удалённого компьютера в локальной сети
Мне нужно выключить компьютер по локальной сети. На обоих ПК Win7. На целевом ПК включил службу.
Организация сервера в локальной сети
Здравствуйте! У меня установлен пакет Vertrigo, включающий в себя Apache с поддержкой PHP + MySQL.
Была у меня похожая проблема: планировщик запускает программу, но программа крашится при запуске. Сделал костыль: создал ярлык на программу и планировщик запускает программу через ярлык.
if Line.find("UPS_ONLINE_STATE -> UPS_POWER_FAIL_STATE") != -1: os.system("shutdown /s /f /t 0 /m \\\\192.168.12.147 /c ""1"" ")
Вручную и из командной строки всё работет, а вот из планировщика нет
Добавлено через 26 секунд
Val Rubis, думаете стоит создать ярлык на bat файл ?
Генрисон, а хватает ли ему прав? не стоит ли реально сделать ярлык или другим способом указать права админа для скрипта? второе -не вариант прикрутить логи и в текстовый файлик валить все собтия и ошибки? ну чисто поглядеть что там, думаю что то падает.
Как выключить компьютер с помощью Python
Я написал сценарий Python, который должен в конечном итоге выключить компьютер. Эта строка является ее частью:
Это делает своего рода выключение, но остается на включенной панели управления Windows (где пользователь может переключать пользователей компьютера). Есть ли способ полностью выключить компьютер? Я пробовал другие os.system(«shutdown ___») безуспешно. Есть ли другой метод, который может помочь?
На самом деле это не имеет ничего общего с Python, так как shutdown /p просто отправляется в систему как команда терминала. Пожалуйста, укажите версию вашей ОС, так как параметры могут отличаться.
Да, конечно. Но мой вопрос: есть ли способ использовать модули Python? или по-другому? И мне нужно запустить программу на нескольких компьютерах, поэтому версия ОС не совпадает. Спасибо
5 ответов
import os os.system('shutdown -s')
Это будет работать для вас.
Одна из проблем заключается в том, что он оставляет сообщение о том, что «You are about to be signed out in less than a minute» . Другая причина заключается в том, что если кто-то разместит пакетный сценарий с именем shutdown.bat вместе со сценарием, он не будет работать, это также является угрозой безопасности, поскольку этот файл будет выполнен. Подпроцесс теперь должен использоваться поверх os.system() .
import os os.system('sudo shutdown now')
или: если вы хотите немедленное отключение без запроса sudo для sudo пароля, используйте следующее для Ubuntu и подобных дистрибутивов:
os.system('systemctl poweroff')
Единственный вариант, который действительно работает для меня без каких-либо проблем:
import os os.system('shutdown /p /f')
Используя ctypes, вы можете использовать функцию ExitWindowsEx для выключения компьютера.
Выход из системы интерактивного пользователя, выключение системы или выключение и перезагрузка системы.
Сначала немного кода:
import ctypes user32 = ctypes.WinDLL('user32') user32.ExitWindowsEx(0x00000008, 0x00000000)
Теперь объяснение построчно:
- Получить библиотеку ctypes
- ExitWindowsEx предоставляется user32.dll и должен быть загружен через WinDLL()
- Вызовите ExitWindowsEx() и передайте необходимые параметры.
Все аргументы шестнадцатеричные.
Первый аргумент, который я выбрал:
выключает систему и выключает питание. Система должна поддерживать функцию отключения питания.
Есть много других возможных функций, см. Документацию для полного списка.
Второй аргумент должен дать причину отключения, которое регистрируется системой. В этом случае я выбрал Other issue вариант, но есть из чего выбирать. Смотрите это для полного списка.
Делаем это кроссплатформенным:
Это может быть объединено с другими методами, чтобы сделать его кроссплатформенным. Например:
import sys if sys.platform == 'win32': import ctypes user32 = ctypes.WinDLL('user32') user32.ExitWindowsEx(0x00000008, 0x00000000) else: import os os.system('sudo shutdown now')
Это зависимая от Windows функция (хотя Linux/Mac будет иметь аналог), но это лучшее решение, чем вызов os.system() поскольку пакетный скрипт с именем shutdown.bat не будет конфликтовать с командой (и вызывать угрозу безопасности в тем временем).
Кроме того, он не беспокоит пользователей сообщением «You are about to be signed out in less than a minute» как shutdown -s делает shutdown -s , но выполняется без вывода сообщений.
В качестве дополнительного примечания используйте подпроцесс над os.system() (см. Различие между subprocess.Popen и os.system)
В качестве примечания: я создал WinUtils (только для Windows), который немного упрощает это, однако он должен быть быстрее (и не требует Ctypes), поскольку он встроен в C.
import WinUtils WinUtils.Shutdown(WinUtils.SHTDN_REASON_MINOR_OTHER)
Русские Блоги
Используйте Python для удаленного управления отключением компьютеров Linux
- Цель: Используйте Python для удаленного управления выключением компьютеров Linux
- Требования к конфигурации системы:
1 Вам нужно установить инструмент клиента/сервера SSH, команды установки Ubuntu следующие
$ sudo apt-get install openssh-client $ sudo apt-get install openssh-server
2 Запустите SSH -сервер, команда следующая,
3 Управляющий хост должен установить Python (рекомендуется Python3.5 или более) и установить пакет Python «Paramiko», команда установки следующим образом следующим образом, следующим образом, следующим образом,
4 Управляющий хост и управляемые машины в той же локальной сети.
1 Откройте терминал управляющего хоста, введите команду SSH Connection следующим образом (при условии, что IP -адрес управляющей машины — 192.168.3.6), система будет запросить информацию, такую как имя пользователя и пароль, пожалуйста, заполните правильную информацию в соответствии с подсказками ;
2 После успешного подключения к целевому компьютеру используйте следующую команду для отключения управляемой машины. Команда заключается в следующем. Компьютер управления выполнит действие выключения.
$ sudo shutdown -h now (Введите пароль Control Password)
- Используйте Python для удаленного управления выключением компьютера Linux. Пример кода заключается в следующем, а следующий код сохраняется как «remote_power_off.py», а команда выполнения «python3 remote_power_off.py»
# -*- coding:utf-8 -*- import paramiko host = '192.168.3.6' user = 'test001' password = '××××××××' def ssh_exec_command(command): try: ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect(host, 22, user, password) print("command: " + command) std_in, std_out, std_err = ssh_client.exec_command(command, get_pty=True) std_in.write(password + '\n') for line in std_out: print(line.strip("\n")) for line in std_err: print(line.strip("\n")) ssh_client.close() except Exception as e: print("error: " + str(e)) if __name__ == '__main__': #ssh_exec_command("ls -l") ssh_exec_command("sudo shutdown -h now")