用于关闭和启动本地服务器的小型库
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"