侧边栏壁纸
  • 累计撰写 54 篇文章
  • 累计创建 31 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

群晖监控硬盘并把结果发送到手机上实时查看

nankle
2024-09-03 / 0 评论 / 0 点赞 / 25 阅读 / 3650 字
温馨提示:
本文最后更新于 2024-09-03,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

本文主要介绍的是标题的后半部分,如何通知到手机实时查看,使用的是群晖的chat软件,有手机客户端,可以接收通知。

一、chat安装

这个软件有的版本的套件商城是没有的,需要根据自己的版本下载适合的,我的是这个版本

下载后,在套件中心中选择手动安装套件

选择文件安装即可

二、设置机器人

安装好先进入web界面,在右上角的头像中选择"整合"

由于只是接收通知,不需要交互,选择传入的webhook就够用

添加名称等,记住其中的url,主要是token

可以新增一个频道,专门使用

三、接口调用

可以直接设置定时任务调用,也可以自己写脚本调用,主要是token和通知的内容,格式如下

curl "http://127.0.0.1:5000/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2" -d "payload={\"text\": \"通知内容\"}&token=zdaFaUgok1WcSbYrAHF82qWSu2JDzSEu3zVHGyrDS2YVRSzv8MprIeh*******"

因为我要监控硬盘,所有需要先获取硬盘状态,为了方便,我写了一个脚本,然后使用任务计划执行

脚本:

#!/bin/bash

# 定义结果字符串变量
result=""

# 获取磁盘状态并拼接结果字符串
for disk in sdc sdd sde; do
    # 获取磁盘状态
    status=$(hdparm -C "/dev/$disk" | grep state | awk '{print $4}')
    
    # 根据状态拼接结果字符串,并进行替换
    if [ "$status" = "standby" ]; then
        case $disk in
            sdc)
                result="$result\n影音盘-sdc 休眠"
                ;;
            sdd)
                result="$result\n备份盘-sdd 休眠"
                ;;
            sde)
                result="$result\n台式机-sde 休眠"
                ;;
        esac
    else
        case $disk in
            sdc)
                result="$result\n影音盘-sdc 活跃"
                ;;
            sdd)
                result="$result\n备份盘-sdd 活跃"
                ;;
            sde)
                result="$result\n台式机-sde 活跃"
                ;;
        esac
    fi
done

# 去除第一个换行符
result="${result:2}"

# 构造 curl 命令
curl_command="curl 'http://127.0.0.1:5000/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2' \
-d 'payload={\"text\": \"$result\"}' \
-d 'token=zdaFaUgok1WcSbYrAHF82qWSu2JDzSEu3zVHGyrDS2YVRSzv8MprIehY0l*****'"

# 执行 curl 命令
eval "$curl_command"

上面的脚本是监控了三个硬盘的状态,很多代码都是为了生成通知的内容,这个可以根据情况修改,监控别的也可以。

注意的点是token要写对,格式要对,内容中有双引号等特殊字符需要转义。

定时任务调用,在控制面板->计划任务中新增一个root调用的任务,我设置了5分钟执行一次

四、下载手机连接查看

可以在群晖的官网下载手机app版本的chat

登录后找到在web界面创建的频道,就能收到通知了,效果如下

Screenshot_2024-09-03-08-13-01-601_com.synology.dschat.baidu.jpg

之所以要做这个功能,是为了监控硬盘休眠对功耗的影响,最近一直在为降低功耗做努力,还是有点效果,只有一个机械硬盘活跃的时候,功耗只有20瓦,加上路由器才28瓦。

IMG_20240903_081431.jpg

0

评论区