1

RAID システムのステータスを確認するための bash スクリプトがあります。

#!/bin/bash
EMAIL_ADD=webmaster@whatever-i-want.mail

zpool status -x | grep 'all pools are healthy'

if [ $? -ne 0 ]; then
    /bin/date > /tmp/zfs.stat
    echo >> /tmp/zfs.stat
    /bin/hostname >> /tmp/zfs.stat
    echo >> /tmp/zfs.stat
    /sbin/zpool status -x >> /tmp/zfs.stat
    cat /tmp/zfs.stat | /usr/bin/mail -s "Disk failure in server : `hostname`" $EMAIL_ADD
fi

スクリプトを手動で実行すると機能するので、このスクリプトを cronjob として実行することにしました。しかし、cronjobs は毎回メールを送信します。これを修正するのを手伝ってくれることを本当に願っています。

4

1 に答える 1

0

$? による終了ステータスのテスト 詳細については、終了値のテストに移動してください。次のように、if 条件を COMMAND(zpool ...) に置き換える必要があります。

if ! zpool status -x | grep 'all pools are healthy';then
...
fi
于 2015-06-24T08:30:45.847 に答える