用于关闭和启动本地服务器的小型库

manage_server_power的Python项目详细描述


这个库处理相当具体的远程电源管理场景。

  • 服务器可以通过局域网唤醒(wol)
  • 通过对服务器的公钥身份验证进行ssh访问(用于关闭服务器)
  • 服务器响应ping(检查服务器是否正在运行)

安装:

pip install manage_server_power

或者克隆repository并使用

python setup.py install

配置和注意事项

在服务器端:

  • 启用wol(从bios/…设置)。
  • 注意相关的mac地址。
  • 将新用户添加到服务器(例如,powermanagement)。
  • 编辑sudoers(visudo)并添加powermanagement ALL=NOPASSWD: /sbin/poweroff

在管理计算机上:

  • 生成ssh公钥对(ssh keygen)
  • 将公钥复制到服务器上的powermanagement用户(将其添加到.ssh/authorized_keys
  • 连接到服务器以检查公钥是否正常工作,并将服务器主机密钥添加到已知的主机。

注意:

  • 至少对于某些设备/网络,如果广播IP未设置为本地网络的广播,而不是255.255.255.255,则WOL将无法工作。

用法

import manage_server_power
sp = manage_server_power.ServerPower(server_hostname="example.com",
                                     server_mac="61:a3:18:1c:84:4b",
                                     server_port=22,  # optional, default is 22
                                     ssh_username="powermanagement",
                                     broadcast_ip="192.168.1.255",  # optional, default is 255.255.255.255
                                     socket_timeout=0.5,  # optional
                                     wol_port=9,  # optional, default is 9
                                     )
print sp.is_alive()
# SERVER_DOWN, SERVER_UP or SERVER_UP_NOT_RESPONDING
print sp.wake_up()  # send WOL packet
print sp.shutdown()  # ssh in and run "sudo poweroff"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
传递Java处理类类型参数的方式的参数   java安卓中间层admob在logcat中导致大量GC_FOR_ALLOC释放消息   java Vert。x Http请求未将参数分配为配置   java中多线程的输出不正确   如何减少java本地线程的冗余   java不完全分块结果   使用OpenCv时java中的Mat数据类型不受支持错误   Java中的正则表达式不工作,而同一正则表达式在shell中工作   java如何从数组中删除元素?   JDBCJava。sql。SQLException:[Microsoft][ODBC Microsoft Access驱动程序]操作必须使用可更新的查询   java如何以对角线打印字符串变量的字符?   SonarQube 5.2的java自定义插件生成NoClassDefFoundError   macos使用Java应用程序打开浏览器选项卡