【Dell R730 折腾记录】风扇调速--在 Ubuntu 系统上开机自启动并每隔30分钟执行一次风扇定速脚本

前段时间升级了一下机柜里的服务器,替换掉了一台旧的 Dell 服务器,换上了这台 R730。但是无奈于噪音的袭扰,搁置了一段时间。我在这台机器上目前安装了一块 Intel Xeon E5-2630v3 芯片以及一张改过散热的 NVIDIA Tesla P4 计算卡。结果就是散热风扇全速开启。因此不得不在另外一台 7x24 开机的机器上部署一个脚本用于每隔三十分钟自动设定一次风扇转速。

一、前置任务 IPMI 与 IDRAC

使用 ipmitool 的前提是开启了 IPMI 管理权限以及确保 IDRAC网口介入网络。

在开启权限之后,进入到路由器的页面,给予这个 IDRAC 网口一个固定的 IP 地址。

二、安装 ipmitool 管理工具

在 Ubuntu 上安装 ipmitool 工具非常方便,只需要输入下面的指令即可:

shell 复制代码
sudo apt install ipmitool

三、自动化脚本

步骤 1: 风扇转速设定脚本

首先,我们将需要定时执行的命令保存到一个 shell 脚本文件中。创建一个名为 ipmitool_script.sh 的文件,并添加以下内容:

shell 复制代码
#!/bin/bash

# 脚本执行的命令
ipmitool -I lanplus -H {Your IDRAC IP Address} -U {Username} -P {Password} raw 0x30 0xce 0x00 0x16 0x05 0x00 0x00 0x00 0x05 0x00 0x01 0x00 0x00

ipmitool -I lanplus -H {Your IDRAC IP Address} -U {Username} -P {Password} raw 0x30 0x30 0x01 0x00

ipmitool -I lanplus -H {Your IDRAC IP Address} -U {Username} -P {Password} raw 0x30 0x30 0x02 0xff 0x08  
# 最后一位 0x08 是十六进制的风扇转速

# 检查上一个命令是否成功执行
if [ $? -eq 0 ]; then
    echo "Script executed successfully."
else
    echo "Script failed to execute."
fi

然后,给这个脚本文件赋予执行权限:

shell 复制代码
chmod +x ipmitool_script.sh

步骤 2: 创建系统服务

接下来,我们将创建一个 systemd 服务来管理这个脚本的执行。

  1. 创建一个新的 systemd 服务文件:
shell 复制代码
sudo nano /etc/systemd/system/ipmitool.service
  1. 将以下内容添加到服务文件中:
shell 复制代码
[Unit]
Description=IPMI Tool Script Service
After=network.target

[Service]
Type=simple
ExecStart=/path/to/your/script/ipmitool_script.sh
User=root
Group=root

[Install]
WantedBy=multi-user.target

请将 /path/to/your/script/ 替换为你的脚本实际所在的目录。

步骤 3: 设置定时任务

为了每隔30分钟执行一次脚本,我们可以使用 systemd.timer 来实现。

  1. 创建一个新的定时器文件:
shell 复制代码
sudo nano /etc/systemd/system/ipmitool.timer
  1. 将以下内容添加到定时器文件中:
shell 复制代码
[Unit]
Description=Run IPMI Tool Script every 30 minutes

[Timer]
OnBootSec=1min
OnUnitActiveSec=30m
Unit=ipmitool.service

[Install]
WantedBy=timers.target

步骤 4: 启动服务和定时器

  1. 启用并启动服务:
shell 复制代码
sudo systemctl enable ipmitool.service
sudo systemctl start ipmitool.service
  1. 启用并启动定时器:
shell 复制代码
sudo systemctl enable ipmitool.timer
sudo systemctl start ipmitool.timer

步骤 5: 检查状态

使用以下命令检查服务和定时器的状态:

shell 复制代码
sudo systemctl status ipmitool.service
sudo systemctl status ipmitool.timer

这样,就可以实现服务器在开机后每30分钟执行一次风扇调速的脚本的需求了。

相关推荐
小白兔奶糖ovo2 分钟前
【Leetcode】231. 2的幂
linux·算法·leetcode
Plastic garden15 分钟前
Docker(1)
运维·docker·容器
s_w.h27 分钟前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
songjxin31 分钟前
Nginx 日志分析可视化面板
运维·nginx
专注VB编程开发20年1 小时前
安卓APP与服务器通讯技术,文件传输和文字消息收发
运维·服务器
顺风尿一寸1 小时前
深入Linux内核:mkdir系统调用的完整实现解析
linux
用户2367829801681 小时前
Linux free 命令深度解析:从内存监控到 OOM 排查的完整指南
linux
Agent手记1 小时前
电信运营商如何用AI实现携号转网自动处理?基于实在Agent的业务自动化落地与TARS大模型解析方案
运维·人工智能·ai·自动化
无足鸟ICT1 小时前
【RHCA+】boxes命令(艺术框)
linux
wanhengidc2 小时前
云手机搬砖 像僵尸开炮
运维·网络·智能手机·云计算