Оповещение о состоянии состояний mdadm - PullRequest
0 голосов
/ 03 марта 2020

У меня есть ручной NAS, работающий на "Debian 10 buster" с RAID 5,

root@fox-nas:~# uname -a
Linux fox-nas 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux

И я попытался настроить уведомление об изменении статуса RAID, я создал скрипт с следующее содержимое:

#!/bin/bash
wirepusher_id="your_id_here"
sr="/root/raid_status_monitor" #script_root
m_d="/dev/md0" #monitored_device
n_s=$(mdadm --detail "$m_d" | awk '/^State/ {printf "%s: ", $1}; /State / {print $NF}')
s_f=""$sr"/status.txt" #status_file
if [ ! -f "$s_f" ]; then
    mdadm --detail "$m_d" > "$s_f"
else
    o_f=$(awk '/^State/ {printf "%s: ", $1}; /State / {print $NF}' "$s_f")
fi
if [ "$n_s" != "$o_f" ]; then
    echo "RAID status changed"
    mdadm --detail "$m_d" > "$s_f"
    echo "$o_f" | tee "$sr"/raid.log
    curl -s "https://wirepusher.com/send?id=$wirepusher_id&title=$HOSTNAME $(hostname -I) $(curl -s 2ip.ru)&message=State of $m_d changed old $o_f new $n_s&type=RAID ALERT" -X POST
fi

Он запускается без проблем, как и ожидалось от оболочки, но когда я запускаю его из cronjob root получает это письмо для каждого выполнения.

/root/raid_status_monitor/raid_status.sh: line 4: mdadm: command not found

cronjob выглядит так

root@fox-nas:~# crontab -l | grep -v "#" | grep raid
@hourly bash /root/raid_status_monitor/raid_status.sh

Может кто-нибудь помочь мне выяснить, почему это происходит?

1 Ответ

0 голосов
/ 03 марта 2020

Убедитесь, что у вас есть команды mdadm и curl внутри папок, включенных в определенную переменную $ PATH crontab.

Также вы можете проверить, где эти команды используют полный путь в вашем скрипте:

which mdadm curl
...