[服务器]OMV查询硬盘休眠状态
认证:电脑主机优质原创作者
本文有3498个文字,大小约为13KB,预计阅读时间9分钟
###前言
一开始unraid转移到openmediavault的时候。就很纠结于omv是否需要给硬盘设置高级电源管理。这项操作在unraid里是很方便统一对硬盘进行设置的。但是在omv里需要逐一对于硬盘进行操作(尤其是我的硬盘柜总共有40+硬盘)。而且也不是很明白高级电源管理里的各种选项。就一直很劝退……
但是电费单子下来之后。我觉得还是很有必要实操一下了。
我的硬盘柜主要是做半冷存储。主要是大量写入后。几乎不做改动。过了一定时间的存储期限后将其删除。
因此在我的使用场景下。没有很长期的频繁读写操作。所以我的电源管理设置是127。停转时间是30min。(也许后期会提高到60。需要运行一段时间看LoadCycleCount增长是不是很夸张再做决定)
###正题
###OMV查询硬盘休眠OMV查询硬盘休眠状态状态查询硬盘休眠OMV查询硬盘休眠状态状态
设置好硬盘的电源管理后。为了验证是否设置成功并有效的可以Standby已达到节能的目的。便搜索了一下相关内容。然后找到@龙天ivan 的文档
《OMVOMV查询硬盘休眠OMV查询硬盘休眠状态状态查询硬盘休眠OMV查询硬盘休眠状态状态(Linux通用)》 jianshu.com/p/74f65ac27a2a
@龙天ivan 的文档使用下来体验良好。OMV查询硬盘休眠OMV查询硬盘休眠状态状态可以快速在不唤醒硬盘的情况下查阅硬盘IDLEOMV查询硬盘休眠状态状态。即Active或者Standby。
但是同时也到一定的问题。比如一开始无法正确获取硬盘sdaa /sdab 之类的盘符
```
dsk=`ls /dev/|grep 'sd[a-z]$'` #此代码只能识别三位字符盘符。不能识别如 sdaasdab OMV查询硬盘休眠状态等驱动器名称
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'` #修改为此即可获取sdaa/sdab等盘位
```
原文的作者也很好的写明白了一步一步的过程。所以很容易看明白是怎么写出这个脚本的。
基于此。跟着他的思路OMV查询硬盘休眠状态和方法。我跟着测试改写了一些代码。使其实现了更多更适合我的使用场景的功能。
###加料版结果
1.首先解决不能正确识别到sdaa等同类盘符的磁盘;
2.增加分割线方便阅读echo结果;
3.使用lsblkOMV查询硬盘休眠状态和grep将硬盘对应的路径OMV查询硬盘休眠状态和盘符大小标识出来。方便跟文件系统一一对应。使得结果更直观易读;
4.使用if语句判断硬盘OMV查询硬盘休眠状态状态。并使用颜色标记硬盘的不同OMV查询硬盘休眠状态状态。红色ACTIVE。绿色STANDBY。白色UNKOWN;
5.增加 if 嵌套语句判断除开 ACTIVE OMV查询硬盘休眠状态和 STANDBY 之外OMV查询硬盘休眠状态状态的硬盘;
6.使用for语句将UNKNOWNOMV查询硬盘休眠状态状态的硬盘列举出来。并且在段落最后单独echo出数量以及具体盘符;
颜色标识OMV查询硬盘休眠状态状态/显示各OMV查询硬盘休眠状态状态硬盘数量/列出位置OMV查询硬盘休眠状态状态硬盘
###脚本完整版如下:
-简单阅读一遍可以直接抄作业。按照上文提到的@龙天ivan 的文档存储脚本。对脚本赋予权限即可。不在此赘述。
-需要注意的是。颜色标识在omvOMV查询硬盘休眠状态的计划任务里并不支持。
```
#!/bin/bash
#function-1:显示硬盘盘符+Lable+容量以及硬盘上电OMV查询硬盘休眠状态状态
#function-2:通过echo -eOMV查询硬盘休眠状态转义与if...elif...elseOMV查询硬盘休眠状态语句使其active呈现红色,standby呈现绿色,方便快速检视硬盘上电情况
#function-3:原for循环语句中加入判断OMV查询硬盘休眠状态和循环计数方式,统计activeOMV查询硬盘休眠状态和standby的数量
#function-4:增加 if 嵌套语句判断除开 active OMV查询硬盘休眠状态和 standby 之外OMV查询硬盘休眠状态状态的硬盘。并将其标记为 unknown
#function-5:将unknownOMV查询硬盘休眠状态状态的硬盘列举出来(对for语句上瘾了……
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'`
echo `date +%c`
standby=0
active=0
unknown=0
c=0
for i in $dsk;
do
echo -e "n";
echo -e "-----------------------";
echo -n "/dev/$i : " ;
stats=`smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
#echo $stats
if [[ $stats == STANDBY ]]||[[ $stats == ACTIVE ]]||[[ $stats == IDLE_A ]]
then
for s in $stats;
do
if [ $s == STANDBY ]
then
echo -e "�33[30;42m STANDBY �33[0m"
let standby=$standby+1
else
echo -e "�33[37;41m ACTIVE �33[0m"
let active=$active+1
fi
done
else
echo -e "�33[30;47m UNKNOWN �33[0m"
let unknown=$unknown+1
for un in $i
do
list[c]=$un
((c++))
done
fi
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `;
done
echo -e "n";
echo -e "�33[37;41mActive Disk in Total=$active �33[0m";
echo -e "�33[30;42mStandby Disk in Total=$standby �33[0m";
echo -e "�33[30;47mUnknown Disk in Total=$unknown �33[0m";
#echo $c
echo -e "Unknown Disk list: ";
for((b=0;b<=$c;b++));
do
if [[ $b -lt $c ]]
then
echo ${list[b]}
fi
done
echo -e "n";
exit
```
###本文到此结束
使用愉快。以下内容只是作为我改写过程的记录。方便还原各个功能点引入时候的思路。感兴趣的可以看一下帮忙指正。
v1
```
#!/bin/bash
#function-1:显示硬盘盘符+Lable+容量以及硬盘上电OMV查询硬盘休眠状态状态
dsk=`ls /dev/|grep 'sd[a-z]$'` #此代码只能识别三位字符盘符。不能识别如 sdaasdab OMV查询硬盘休眠状态等驱动器名称
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'` #修改为此即可
echo `date +%c`
for i in $dsk;
do
echo -n "/dev/$i : " ; #显示盘符
echo `smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `; #显示硬盘通电OMV查询硬盘休眠状态状态
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7} `; #显示硬盘 lable
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `; #显示硬盘大小
echo -e "n"; #换行
done
exit
```
v2
增加颜色显示加以区分。建立分割线。方便查看各硬盘
```
#!/bin/bash
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'`
echo `date +%c`
for i in $dsk;
do
echo -e "�33[37;41m !Disk Stats! �33[0m";
echo -n "/dev/$i : " ;
echo `smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `;
echo -e "n";
done
exit
```
v3
OMV查询硬盘休眠状态增加条件判断
active 红色
stanby 绿色
check 黄色
```
#!/bin/bash
#function-1:显示硬盘盘符+Lable+容量以及硬盘上电OMV查询硬盘休眠状态状态
#function-2:通过echo -eOMV查询硬盘休眠状态转义与if...elif...elseOMV查询硬盘休眠状态语句使其active呈现红色,standby呈现绿色,方便快速检视硬盘上电情况
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'`
echo `date +%c`
for i in $dsk;
do
echo -e "-----------------------";
echo -n "/dev/$i : " ;
stats=`smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
for s in $stats;
do
echo "$s"
if [ $s == STANDBY ]
then
echo -e "�33[30;42m STANDBY �33[0m";
elif [ $s == ACTIVE ]
then
echo -e "�33[37;41m ACTIVE �33[0m";
else
echo -e "�33[30;43m PLEASE CKECK �33[0m";
fi
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `;
echo -e "n";
done
done
exit
```
v4
增加硬盘OMV查询硬盘休眠状态状态的数量统计
代码中对 unknown 的判断是无效的。下一个功能版本中修复。(原因为 stats 有可能返回为空 string
```
#!/bin/bash
#function-1:显示硬盘盘符+Lable+容量以及硬盘上电OMV查询硬盘休眠状态状态
#function-2:通过echo -eOMV查询硬盘休眠状态转义与if...elif...elseOMV查询硬盘休眠状态语句使其active呈现红色,standby呈现绿色,方便快速检视硬盘上电情况
#function-3:原for循环语句中加入判断OMV查询硬盘休眠状态和循环计数方式,统计activeOMV查询硬盘休眠状态和standby的数量
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'`
echo `date +%c`
standby=0
active=0
unknown=0
for i in $dsk;
do
echo -e "n";
echo -e "-----------------------";
echo -n "/dev/$i : " ;
stats=`smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
for s in $stats;
do
if [ $s == STANDBY ]
then
echo -e "�33[30;42m STANDBY �33[0m";
let standby=$standby+1
elif [ $s == ACTIVE ]
then
echo -e "�33[37;41m ACTIVE �33[0m";
let active=$active+1
else
echo -e "�33[30;43m UNKNOWN �33[0m";
let unknown=$unknown+1
fi
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `;
done
done
echo -e "n";
echo -e "�33[37;41mActive Disk in Total=$active �33[0m";
echo -e "�33[30;42mStandby Disk in Total=$standby �33[0m";
echo -e "�33[30;47mUnknown Disk in Total=$unknown �33[0m";
echo -e "n";
exit
```
v5
增加功能 4
```
#!/bin/bash
#function-1:显示硬盘盘符+Lable+容量以及硬盘上电OMV查询硬盘休眠状态状态
#function-2:通过echo -eOMV查询硬盘休眠状态转义与if...elif...elseOMV查询硬盘休眠状态语句使其active呈现红色,standby呈现绿色,方便快速检视硬盘上电情况
#function-3:原for循环语句中加入判断OMV查询硬盘休眠状态和循环计数方式,统计activeOMV查询硬盘休眠状态和standby的数量
#function-4:增加 if 嵌套语句判断除开 active OMV查询硬盘休眠状态和 standby 之外OMV查询硬盘休眠状态状态的硬盘。并将其标记为 unknown
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'`
echo `date +%c`
standby=0
active=0
unknown=0
for i in $dsk;
do
echo -e "n";
echo -e "-----------------------";
echo -n "/dev/$i : " ;
stats=`smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
#echo $stats
if [[ $stats == STANDBY ]]||[[ $stats == ACTIVE ]]||[[ $stats == IDLE_A ]]
then
for s in $stats;
do
if [ $s == STANDBY ]
then
echo -e "�33[30;42m STANDBY �33[0m"
let standby=$standby+1
else
echo -e "�33[37;41m ACTIVE �33[0m"
let active=$active+1
fi
done
else
echo -e "�33[30;47m UNKNOWN �33[0m"
let unknown=$unknown+1
fi
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `;
done
echo -e "n";
echo -e "�33[37;41mActive Disk in Total=$active �33[0m";
echo -e "�33[30;42mStandby Disk in Total=$standby �33[0m";
echo -e "�33[30;47mUnknown Disk in Total=$unknown �33[0m";
echo -e "n";
exit
```
v6
```
#!/bin/bash
#function-1:显示硬盘盘符+Lable+容量以及硬盘上电OMV查询硬盘休眠状态状态
#function-2:通过echo -eOMV查询硬盘休眠状态转义与if...elif...elseOMV查询硬盘休眠状态语句使其active呈现红色,standby呈现绿色,方便快速检视硬盘上电情况
#function-3:原for循环语句中加入判断OMV查询硬盘休眠状态和循环计数方式,统计activeOMV查询硬盘休眠状态和standby的数量
#function-4:增加 if 嵌套语句判断除开 active OMV查询硬盘休眠状态和 standby 之外OMV查询硬盘休眠状态状态的硬盘。并将其标记为 unknown
#function-5:将unknownOMV查询硬盘休眠状态状态的硬盘列举出来(对for语句上瘾了……
dsk=`ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$'`
echo `date +%c`
standby=0
active=0
unknown=0
a=0
b=0
c=0
for i in $dsk;
do
echo -e "n";
echo -e "-----------------------";
echo -n "/dev/$i : " ;
stats=`smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
#echo $stats
if [[ $stats == STANDBY ]]||[[ $stats == ACTIVE ]]||[[ $stats == IDLE_A ]]
then
for s in $stats;
do
if [ $s == STANDBY ]
then
echo -e "�33[30;42m STANDBY �33[0m"
let standby=$standby+1
else
echo -e "�33[37;41m ACTIVE �33[0m"
let active=$active+1
fi
done
else
echo -e "�33[30;47m UNKNOWN �33[0m"
let unknown=$unknown+1
for un in $i
do
list[c]=$un
((c++))
done
fi
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $7}' `;
echo `lsblk /dev/$i|grep "/srv/dev-disk-by-label-"|awk '{print $4}' `;
done
echo -e "n";
echo -e "�33[37;41mActive Disk in Total=$active �33[0m";
echo -e "�33[30;42mStandby Disk in Total=$standby �33[0m";
echo -e "�33[30;47mUnknown Disk in Total=$unknown �33[0m";
#echo $c
echo -e "Unknown Disk list: ";
for((b=0;b<=$c;b++));
do
if [[ $b -lt $c ]]
then
echo ${list[b]}
fi
done
echo -e "n";
exit
```
OMVOMV查询硬盘休眠OMV查询硬盘休眠状态状态查询硬盘休眠OMV查询硬盘休眠状态状态
其他人还看了
Win7电脑RPC服务器不可用怎么办 RPC服务器不可用解决方法
Win10如何修改时间同步服务器?Windows时间同步出错解决方法
找不到服务器或DNS错误怎么办?Win7找不到服务器或dns错误解决方法
Win10玩lol英雄联盟无法连接服务器请检查您的网络连接解决方法
Win10开机服务器正在运行中如何解决?服务器正在运行中到解决方法
郑重声明:本文“[服务器]OMV查询硬盘休眠状态”,https://nmgjrty.com/diannaozj_210247.html内容,由空锅提供发布,请自行判断内容优劣。
- 全部评论(0)
- 双11买游戏本选锐龙,钱包君和性能君统统留住!必杀价即将释放不可错过!
- 大核配大显,太卷了,轻薄本都用上锐龙7了
- 荣耀MagicBook14,大核大显加持,轻薄本也有强性能
- 全大核才能高效工作!高性能商务本就选华硕无畏Pro14
- 大核大显性能强劲ROG幻142022配置简析
- 大核配大显,谁说轻薄本不能打?惠普战X锐龙版高端商务轻薄本
- 四个风扇+樱桃机械键盘的笔记本儿哈哈,来瞅一眼外星人ALIENWAREx17R2吧
- 讯飞智能办公本X2测评体验
- 新款ipad2022值得入手吗
- 测评一个学妹买的上大学笔记本
- 即使是电脑小白也能选好游戏本,认准AMD超威卓越平台,畅玩3A大作!附游戏本
- 苹果全线涨价!双十一iPad选购攻略来啦
- 1260P版入手体验
- 六千价位段笔记本电脑推荐2022下半年得选对CPU
- RTX3050独显、32GB+1TB大内存8699元起
- 惠普发布暗影精灵9旗舰版游戏主机
最新更新
推荐阅读
- 剖析实情麦瑞克K4椭圆机怎么样真的那么差吗?不看必后悔!
- [服务器]HPProLiantMicroServerN54L2000元不到打造自己的NAS4盘位家庭娱乐中心
- [服务器]PogoplugPro,70软妹币打造屌丝的私有云
- 服务器等级LLC设计,Antec推出TPC系列金牌电源
- [服务器]DellR720机架式服务器入手开箱晒及购买经验
- [服务器]HP高端存储晒单
- [服务器]HP惠普MicroServerGen8微型塔式服务器G2020T
- [服务器]NAS华为RH2285v1存储服务器
- [服务器]HP惠普DL360G5超薄服务器
- [服务器]ThinkServer联想TS540&山特C1KUPS
- [服务器]FUJITSU富士通服务器PRIMERGYTX1310M1
- [服务器]自己家17w左右的无风扇小服务器,性能还不错
猜你喜欢
- [服务器]联想服务器份额升至全球第三,一季度营收增长349%
- [iPad]是买iPadPro2021还是等iPadPro2022?
- [游戏本]迟到的晒物荣耀猎人HONORHUNTERV700游戏本
- [一体机]4000元级别的性价比之王,AOC734一体机上手体验
- 一图看懂
- [电子书阅读器]我最爱的经典阅读工具
- [电子书阅读器]海信A5墨水屏手机,本想退了,没想到越用越喜欢,爱背单词的
- 值得买?盘点我的2021
- 2022年学习机选购攻略和品牌推荐,学习机哪个牌子好,高性价比学习机推荐
- 微星GE7612UHS简要晒单
- 想买平板?chromebookplusv2了解下?
- 我的装备清单
- 纪念新世纪福音战士完结、威刚XPG幻境双透机箱装机体验
- 12代酷睿i9+满血版3070ti,这1万5花的值吗?
- 补贴600元 微星10核i9准系统主机无烬RS开卖:仅售7694