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

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

一、前置任务 IPMI 与 IDRAC

使用 ipmitool 的前提是开启了 IPMI 管理权限以及确保 IDRAC网口介入网络。
从知乎上找的图,我忘记截图了
在开启权限之后,进入到路由器的页面,给予这个 IDRAC 网口一个固定的 IP 地址。

二、安装 ipmitool 管理工具

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

sudo apt install ipmitool

三、自动化脚本

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

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

#!/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

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

chmod +x ipmitool_script.sh

步骤 2: 创建系统服务

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

  1. 创建一个新的 systemd 服务文件:
sudo nano /etc/systemd/system/ipmitool.service
  1. 将以下内容添加到服务文件中:
[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. 创建一个新的定时器文件:
sudo nano /etc/systemd/system/ipmitool.timer
  1. 将以下内容添加到定时器文件中:
[Unit]
Description=Run IPMI Tool Script every 30 minutes

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

[Install]
WantedBy=timers.target

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

  1. 启用并启动服务:
sudo systemctl enable ipmitool.service
sudo systemctl start ipmitool.service
  1. 启用并启动定时器:
sudo systemctl enable ipmitool.timer
sudo systemctl start ipmitool.timer

步骤 5: 检查状态

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

sudo systemctl status ipmitool.service
sudo systemctl status ipmitool.timer

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 18:16:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 18:16:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 18:16:02       58 阅读
  4. Python语言-面向对象

    2024-07-09 18:16:02       69 阅读

热门阅读

  1. VScode 常用插件

    2024-07-09 18:16:02       29 阅读
  2. 站群服务器与普通服务器之间的区别

    2024-07-09 18:16:02       26 阅读
  3. 怎么区分服务器的硬盘是ssd还是hdd?

    2024-07-09 18:16:02       27 阅读
  4. RedHat运维-Linux文件管理基础2-ls与find

    2024-07-09 18:16:02       27 阅读
  5. 【Hive实战】 HiveMetaStore的指标分析

    2024-07-09 18:16:02       34 阅读
  6. mongodb-docker-compos-安装

    2024-07-09 18:16:02       30 阅读