【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分钟执行一次风扇调速的脚本的需求了。

相关推荐
cuisidong199720 分钟前
如何在 Kali Linux 上安装 Google Chrome 浏览器
linux·运维·chrome
光通信学徒1 小时前
ubuntu图形界面右上角网络图标找回解决办法
linux·服务器·ubuntu·信息与通信·模块测试
wusam1 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
运维·服务器·网络·docker·容器
南种北李1 小时前
Linux自动化构建工具Make/Makefile
linux·运维·自动化
一直在进步的派大星1 小时前
Docker 从安装到实战
java·运维·docker·微服务·容器
小飞猪Jay1 小时前
面试速通宝典——10
linux·服务器·c++·面试
哲伦贼稳妥2 小时前
一天认识一个硬件之电源
运维·其他·电脑·硬件工程
暗恋 懒羊羊2 小时前
Linux 生产者消费者模型
linux·开发语言·ubuntu
安红豆.3 小时前
Linux基础入门 --13 DAY(SHELL脚本编程基础)
linux·运维·操作系统
..空空的人3 小时前
linux基础指令的认识
linux·运维·服务器