python操控服务器

大多服务器主板都是带有IPMI,因此对于服务器的管理就变得简单了,常见的管理方式是IPMI工具,IPMITOOL、IPMIUTIL 等,需要经过一定的配置,将所有服务器集中在一台主机上进行管理。 ipmiutil和ipmitool命令学习

但是我只有一台服务器,这样管理显然太复杂了。超微主板 supermicro X11spa-t 自带网页管理,打开IPMI的地址,输入账号、密码即可直接进行开机、关机、重启,查看物理硬件信息等一切IPMI支持的操作。但是每次打开网页管理还是太费时间了。

于是,就有了,下面这个python脚本管理:(直接用爬虫代替网页管理,嘎嘎,方便多了)

# -*- coding: utf-8 -*-
import requests,timeheaders1 = {
'Accept': 'text/javascript, text/html, application/xml, text/xml, */*',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en-CN;q=0.8,en;q=0.7',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
'DNT': '1',
'Host': '192.192.192.192',
'Origin': 'https://192.192.192.192',
'Pragma': 'no-cache',
'Referer': 'https://192.192.192.192/cgi/url_redirect.cgi?url_name=topmenu',
'sec-ch-ua': "'Chromium';v='88', 'Google Chrome';v='88', ';Not A Brand';v='99'",
'sec-ch-ua-mobile': '?0',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36',
'X-Prototype-Version': '1.5.0',
'X-Requested-With': 'XMLHttpRequest'}# 操作参数,这个参数估计全网独一份,哈哈。
data0 = {'op':'POWER_INFO.XML','r':'(0,0)','_':''} #查询当前状态,开机还是关机。
data1 = {'op':'POWER_INFO.XML','r':'(1,1)','_':''} #开机
data3 = {'op':'POWER_INFO.XML','r':'(1,3)','_':''} #重启
data5 = {'op':'POWER_INFO.XML','r':'(1,5)','_':''} #关机sent_time = time.strftime("%Y-%m-%d %H:%M")
sent_message = "空"#登录网站
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'}
data = {'name':'ADMIN','pwd':'DLZXPOEXCS'}
url ='https://192.192.192.192/cgi/login.cgi'
session = requests.Session()
login = session.post(url,headers = headers,data = data,verify=False)#检查开机状态并开机
response = session.post('https://192.192.192.192/cgi/ipmi.cgi',data = data0,headers = headers1,verify=False)
if response.status_code in [200]:if "OFF" in response.text:response1 = session.post('https://192.192.192.192/cgi/ipmi.cgi', data=data1, headers=headers1, verify=False)if response1.status_code in [200]:sent_message = "执行开机"else:sent_message = "开机失败"else:sent_message = "已经开机"
else:sent_message = "开机失败,请检查网络"warning = sent_time + sent_message
requests.get(url='https://sc.ftqq.com/abcdefghigklmnopqrstuvwxyz.send?text=' + warning) #用方糖发送开机信息到微信。

python操控老笔记本开机

必须得是带网络唤醒功能的笔记本,首先进入boss中开启Wake-On-LAN,然后修改以下脚本的mac地址,如果要指定外部主机,需要设置端口转发。

脚本来源 :https://github.com/remcohaszing/pywakeonlan

#!/usr/bin/env python3
"""
Small module for use with the wake on lan protocol.
"""
import argparse
import socket
from typing import List# 如果要指定外部主机。请注意,需要在该主机上进行端口转发。
BROADCAST_IP = "255.255.255.255" #发送魔术包的IP地址默认值,因为没开机,电脑没有IP地址,所以需要将魔术包进行广播。
DEFAULT_PORT = 9 #端口默认值def create_magic_packet(macaddress: str) -> bytes: # 创建魔术包,该函数须带mac地址参数。"""Create a magic packet.A magic packet is a packet that can be used with the for wake on lanprotocol to wake up a computer. The packet is constructed from themac address given as a parameter.Args:macaddress: the mac address that should be parsed into a magic packet."""if len(macaddress) == 17:sep = macaddress[2]macaddress = macaddress.replace(sep, "")elif len(macaddress) != 12:raise ValueError("Incorrect MAC address format")return bytes.fromhex("F" * 12 + macaddress * 16)# 发送魔术包
def send_magic_packet(*macs: str, ip_address: str = BROADCAST_IP, port: int = DEFAULT_PORT
) -> None:"""Wake up computers having any of the given mac addresses.Wake on lan must be enabled on the host device.Args:macs: One or more macaddresses of machines to wake.Keyword Args:ip_address: the ip address of the host to send the magic packet to.port: the port of the host to send the magic packet to."""packets = [create_magic_packet(mac) for mac in macs]with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)sock.connect((ip_address, port))for packet in packets:sock.send(packet)if __name__ == "__main__":send_magic_packet('ff.ff.ff.ff.ff.ff')

如果要对外部主机进行网络唤醒,需要知道:IPV4 协议详解 + 子网掩码

  • 主机部分全为 “0” 的 IP 地址,称为网络地址,网络地址用来标识一个网段。例如,A 类地址 1.0.0.0,私有地址 10.0.0.0, 192.168.1.0。
  • 主机部分全为 “1” 的 IP 地址,称为网段广播地址,广播地址用于标识一个网络的所有主机。例如,10.255.255.255 , 192.168.1.255 等,路由器可以在 10.0.0.0 或者 192.168.1.0 等网段转发广播包。广播地址用于向本网段的所有节点发送数据包。
  • 对于网络部分为 127 的 IP 地址,例如 127.0.0.1 往往用于环路测试目的。
  • 全 “0” 的 IP 地址 0.0.0.0 代表所有的主机,路由器用 0.0.0.0 地址指定默认路由。
  • 全 “1” 的 IP 地址 255.255.255.255,也是广播地址,但 255.255.255.255 代表所有主机,用于向网络的所有节点发送数据包,这样的广播不能被路由器转发。

使用后记:

255.255.255.255是一种特殊的子网掩码,192.168.2.255是广播地址(内网网段192.168.2.1~254),广播包的目标IP。向这两个地址发送魔术包都可以实现开机。但是如果要设置外网远程开机,有些路由器是不能将255.255.255.255设置端口转发的,只能用192.168.2.255来进行远程唤醒,端口号通常是9。另外,远程唤醒魔术包的发送是走udp协议,不是stp,要留意。

python远程操控超微服务器(IPMI)、电脑开机(WOL)相关推荐

  1. 超微服务器主板ipmi证书,超微主板的服务器使用IPMI远程安装操作系统教程

    今天给大家分享的这篇文章是<超微主板的服务器使用IPMI远程安装操作系统教程>,希望对大家有用,一般这类的教程都是通用的...适合大部分带IPMI功能的超微主板. 通俗来说,IPMI(智能 ...

  2. 超微服务器使用IPMI安装操作系统小记

    通俗来说,IPMI(智能型平台管理接口,IntelligentPlatform Management Interface)可以控制服务器电源的开机.关机.重启,远程重装服务器操作系统,并可监视服务器的 ...

  3. 超微服务器安装Linux,超微服务器使用IPMI安装操作系统

    通俗来说,IPMI(智能型平台管理接口,IntelligentPlatform Management Interface)可以控制服务器电源的开机.关机.重启,远程重装服务器操作系统,并可监视服务器的 ...

  4. 使用IPMI安装操作系统--超微服务器为例,以及ipmivier安装与使用

    转载整合声明: 转载地址1:http://www.mamicode.com/info-detail-395844.html 转载地址2:CENTOS6.3下WEB远程IPMI管理 | 一路向北 介绍: ...

  5. 超微服务器如何查看服务器信息,超微服务器远程

    超微服务器远程 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 由于在安全软件中 ...

  6. 如果恰巧有一台超微服务器,如何调节风扇转速

    超微服务器有三个网口,和其他两个分开的那个网口就是IPMI的管理口,这个管理口下面应该是几个USB口. 将IPMI管理口与其他的一个数据网口连接:鼠标.键盘.显示器直接连接服务器. 开机按DELETE ...

  7. 超微服务器开机启动项目怎么设置,超微服务器启动项设置

    超微服务器启动项设置 内容精选 换一换 随着网络IO的带宽不断提升,单核CPU处理网络中断存在瓶颈,不能完全满足网卡的需求,通过开启网卡多队列功能,您可以将弹性云服务器中的网卡中断分散给不同的CPU处 ...

  8. 超微服务器 旧系统盘 新服务器,超微服务器做系统

    超微服务器做系统 内容精选 换一换 本节主要介绍Taishan数据库解决方案MySQL数据库场景下,使能华为新一代NVMe PCIe固态硬盘ES3000 V5的原子写特性的配置环境要求.硬件要求如表1 ...

  9. 超微服务器如何查看服务器信息,超微服务器

    超微服务器 内容精选 换一换 应用管理与运维平台(ServiceStage)是一个应用托管和微服务管理平台,可以帮助企业简化部署.监控.运维和治理等应用生命周期管理工作.面向企业提供微服务.移动和We ...

最新文章

  1. 循环输入正整数,求其平均值
  2. shiro之AuthenticationStrategy
  3. 分数阶累加的Python实现
  4. 模拟退火算法求解旅行商问题(python实现)
  5. SaeStorage使用示例
  6. 【Luogu3931】SAC E#1 - 一道难题 Tree
  7. 什么是实验室人员比对人员_CNAS实验室认可对人员、设备的要求
  8. 香肠派对电脑版_《香肠派对》是不是除了《和平精英》最成功的吃鸡手游:靠恶搞火了?...
  9. 二维数组各行求和_数组入门 | 数组的维度和尺寸
  10. expect学习笔记及实例详解【转】
  11. 程序员选择公司的8个标准
  12. espcms /public/class_connector.php intval truncation Vul Arbitrary User Login
  13. qdir 类似工具_Qdir中文版|多窗口资源管理器下载_最火软件站
  14. cubase手机版android,Cubase中文应用
  15. 这难道是原子、比特and供应链的新内涵?京东如是说……
  16. 服务器安全狗的日志在哪儿 文件位置,服务器安全狗 防护日志功能介绍
  17. 谷歌学术首页url爬取
  18. iOS 蓝牙开发 BabyBluetooth蓝牙库介绍
  19. 微软面试题之数字谜题 (转)
  20. java 登录注册小程序

热门文章

  1. python爬取斗鱼主播图片
  2. 怎么把计算机里面的解压到桌面上,电脑桌面怎么加压文件
  3. FFmpeg编译出来的库太大?试试这几招
  4. 程序员的高效工作场所
  5. 阿里云-个人建网站从0到精通(一)
  6. oracle 文本转数字,Oracle:需要将数值转换为文本并保留 - 已解决
  7. 内存和外存的区别和类型
  8. HEVC学习笔记(二)整体介绍
  9. Android兼容8.0后APP图标变为原生小机器人图标
  10. 人工智能相关论文 2022 accepted papers list