普通视图

PVE和NAS共享一台UPS停电自动关机

2024年12月23日 21:27

公司宿舍电力不稳定,老是闪断,担心近五万小时的硬盘挂掉,开始折腾PVE和NAS共用一台UPS。

设备:1、蜗牛星际黑群晖;2、PVE;3、山特 TG BOX UPS

连接:UPS的USB线接PVE,使用NUT监控触发自动关机。

配置:

1、安装NUT

sudo apt install nut nut-client nut-server

2、扫描UPS

ups-scanner -U

扫描结果如图:

PVE和NAS共享一台UPS停电自动关机-空空裤兜

3、将扫描结果复制,粘贴在/etc/nut/ups.conf中(后续操作文件都在/etc/nut文件夹中),为了黑群能连上,需要修改中括号的内容为UPS。

[ups]
        driver = "usbhid-ups"
        port = "auto"
        vendorid = "0463"
        productid = "FFFF"
        product = "SANTAK TG-BOX"
        serial = "Blank"
        vendor = "EATON"
        bus = "003"
        ignorelb
        override.battery.charge.low = 80
        override.battery.runtime.low = -1

4、装载驱动程序

upsdrvctl start

如图,最后一句不影响使用。

PVE和NAS共享一台UPS停电自动关机-空空裤兜

5、设置监听,修改upsd.conf文件,最后一行添加LISTEN 0.0.0.0 3493

6、修改nut.conf,因为使用PVE作为服务器,所以MODE=netserver

7、修改upsd.users配置用户,黑裙需要连接,用户名和密码必须为monuser和secret

[monuser]
    password = secret
    actions = SET FSD
    instcmds = ALL
    upsmon master

8、修改upsmon.conf,配置关机监控

RUN_AS_USER root
MONITOR ups@10.0.0.254:3493 1 monuser secret master
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYMSG ONLINE    "UPS %s on line power"
NOTIFYMSG ONBATT    "UPS %s on battery"
NOTIFYMSG LOWBATT    "UPS %s battery is low"
NOTIFYMSG FSD        "UPS %s: forced shutdown in progress"
NOTIFYFLAG ONLINE       SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT       SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT      SYSLOG+WALL+EXEC

9、编写配置文件upssched.conf,使用shutdown,很多教程里的power_off不起作用。

MDSCRIPT /etc/nut/upssched-cmd #编写此脚本设置
PIPEFN /etc/nut/upssched.pipe
LOCKFN /etc/nut/upssched.lock

# 断电使用电池开始计时800秒,计时后,执行upssched-cmd脚本,带shutdown_all参数
AT ONBATT * START-TIMER shutdown_all 800
# 来电后,停止shutdown_all计时
AT ONLINE * CANCEL-TIMER shutdown_all
# 来电后,执行脚本,带start_all参数
AT ONLINE * EXECUTE start_all
# 低电量,执行脚本,带shutdown_self参数
AT LOWBATT * EXECUTE shutdown_self

10、编写执行脚本upssched-cmd,需要自己创建文件

#! /bin/sh

case $1 in
        shutdown_self)
                #关闭所有
                upsmon -c fsd
                ;;
        shutdown_all)
                pvesh create /nodes/pve/qemu/100/status/stop
                pvesh create /nodes/pve/qemu/102/status/stop
                pvesh create /nodes/pve/qemu/103/status/stop
                ;;
        start_all)
                #开启所有
                pvesh create /nodes/pve/qemu/100/status/start
                pvesh create /nodes/pve/qemu/103/status/start
                pvesh create /nodes/pve/qemu/102/status/start
                ;;
        *)
                logger -t upssched-cmd "Unrecognized command: $1"
                ;;
esac

11、重启服务

systemctl restart nut-server
systemctl restart nut-monitor

完工,可以尝试断电测试了。

宝塔无法启动fail2ban解决方法

2024年7月22日 13:30

fail2ban是一个个人使用还很不错的防止SSH被爆的程序,但是最近老是启动不成功,搜到的解决方案,实测有用。

环境:Debian 11.7

宝塔:9.1

执行:

rpm -qa | grep fail2ban

如果提示“rpm not found”,安装rpm即可。

执行完命令如果没有任何回复,接着执行:

apt -y install fail2ban

然后在插件中查看,可以看到已启动。

❌