Скрипт для автосоставления конфига smartd
Добавлено: 2011-04-14 20:50:36
навеяно этим - http://sourceforge.net/mailarchive/mess ... d=27332885
писалось под свои девайсы. завтра ещё cciss допилю сюда.
писалось под свои девайсы. завтра ещё cciss допилю сюда.
Код: Выделить всё
#!/bin/sh
#="/dev/ad1 -a -m root -o on -S on -s (S/../.././22|L/../../6/23)"
tpl="-a -m root@`hostname` -o on -S on -s (S/../.././22|L/../../6/23)"
conf="/usr/local/etc/smartd.conf"
if test -f /usr/local/sbin/smartctl
then
# OK
else
echo "instal 'sysutils/smartmontools' before using"
exit 1
fi
# create smartd.conf
echo "# config auto created `date +%Y-%m-%d` in `date +%H:%M:%S`" > $conf
echo "" >> $conf
# check LSI controllers
if test -e /dev/mpt0
then
#echo "found device: /dev/mpt0"
# scan for pass devices
smartctl --scan-open | grep pass | awk '{print $1}' |
{
while read device
do
# check device
if smartctl -a $device -d scsi >/dev/null 2>&1
then
echo "# disk on LSI SCSI controller (/dev/mpt0)" >> $conf
echo "$device -d scsi $tpl" >> $conf
fi
done
}
fi
# check 3ware controllers
if test -f /usr/local/sbin/tw_cli
then
# check 3ware '9000/9500/9550/9650' series controller
if test -e /dev/twa0
then
# get all used port on controller
tw_cli /c0 show | grep ^p | grep -v NOT-PRESENT | awk '{print $1}' | tr -d "[:alpha:]" |
{
while read port
do
echo "# disk on 3ware SATA/SAS controller" >> $conf
echo "/dev/twa0 -d 3ware,$port $tpl" >> $conf
done
}
fi
# check 3ware '5000/6000/7000/8000' series controller
if test -e /dev/twe0
then
# get all used port on controller
tw_cli /c0 show | grep ^p | grep -v NOT-PRESENT | awk '{print $1}' | tr -d "[:alpha:]" |
{
while read port
do
echo "# disk on 3ware PATA/SATA controller" >> $conf
echo "/dev/twe0 -d 3ware,$port $tpl" >> $conf
done
}
fi
else
echo "3ware controllers skipped - required 'sysutils/tw_cli'"
fi
# foreach all disks in system
for disk in `sysctl -n kern.disks`
do
#echo $disk
type="`echo $disk | cut -c 1-2`"
if [ $type = "ad" ]
then
echo "# disk on standart SATA/PATA controller" >> $conf
echo "/dev/$disk $tpl" >> $conf
fi
done
echo "" >> $conf
echo "# EOF" >> $conf
# create log file
touch /var/log/smartd.log