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

news/2024/7/23 11:20:19 标签: ubuntu, linux, 运维

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


http://www.niftyadmin.cn/n/5546401.html

相关文章

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol

Michael.W基于Foundry精读Openzeppelin第63期——Initializable.sol 0. 版本0.1 Initializable.sol 1. 目标合约2. 代码精读2.1 _getInitializedVersion() internal && _isInitializing() internal2.2 modifier initializer()2.3 modifier reinitializer(uint8 version…

C++-时间复杂度

前言 OJ测试中最烦人的结果莫过于TLE(Time Limit Exceed 超时)和MLE(Mempry Limit Exceed超内存)了,在递归和搜索题里面看见这两货就烦。 目录 前言 时间复杂度 时间复杂度概念 时间复杂度的表示法 时间复杂度OJ测试要求 时间复杂度例举 剪枝 1.可行…

uniapp本地打包到Android Studio生成APK文件

(1)安装 Android Studio 软件; 下载地址:官方下载地址,英文环境 安装:如下之外,其他一键 next (2)配置java环境; 下载:j…

deepstream段错误

😐 错误: 探针中由于使用了pyds.get_nvds_buf_surface(hash(gst_buffer), frame_meta.batch_id)导致的段错误(segmentation fault)。 解决方式:

每日一练 - RSTP响应端口故障后的处理流程

01 真题题目 在如图所示的网络中, 所有的交换机运行 RSTP 协议, 假如 SWB 的 E 1 接口故障后, RSTP 的处理过程是:(多选) A.SWB 删除 MAC 地址表中以 E 1 为目的端口的端口表项。 B.重新计算生成树,选举 E2 为新的根…

JavaScript---new Map()用法

new Map 创建 Map 对象设置键值对获取值检查键是否存在键值对数量删除键值对清空所有键值对迭代 Map 在JavaScript中,Map 是一个构造函数,用于创建 Map 对象,它可以存储键值对集合。与普通的对象不同,Map 的键可以是任何类型的值&…

优质可视化大屏模板+动态图表+科技感原件等

优质可视化大屏模板动态图表科技感原件等 软件版本:Axure RP 9 作品类型:高保真 作品内容: 1、大屏可视化模版(100套):包含智慧城市、智慧社区、智慧园区、智慧农业、智慧水务、智慧警务、城市交通、电…

uni-app三部曲之二: 封装http请求

1.引言 前面一篇文章写了使用Pinia进行全局状态管理。 这篇文章主要介绍一下封装http请求,发送数据请求到服务端进行数据的获取。 感谢: 1.yudao-mall-uniapp: 芋道商城,基于 Vue Uniapp 实现,支持分销、拼团、砍价、秒杀、优…