Обновление базы дисков smartctl на CentOS 6.7

Чтобы обновить базу дисков smartctl на CentOS release 6.7 (Final) нужно использовать новый скрипт, так как старый, который идёт в дистрибутиве не работает.

update-smart-drivedb -v ./aa.txt
Download from branches/RELEASE_5_43_DRIVEDB
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
109   329  109   329    0     0   1108      0 --:--:-- --:--:-- --:--:--  2611
./aa.txt.error: rejected by /usr/sbin/smartctl, probably no longer compatible

С момента моего предыдущего обновления снова изменилась структура smartmontools линков для получения свежей базы. Поэтому я написал скрипт который загружает скрипт обновления и настраивает его так чтобы он стянул свежую базу дисков.

cat prepare-update-smart-drivedb.sh 
#!/bin/bash

URL="http://sourceforge.net/p/smartmontools/code/HEAD/tree/trunk/smartmontools/update-smart-drivedb.in?format=raw"
UPDATEFILE="update-smart-drivedb"

if [ -e "${UPDATEFILE}" ] ; then
  echo "File \"${UPDATEFILE}\" exists already. Abort."
  exit 1
fi
wget "${URL}" -O "${UPDATEFILE}"

SMARTCTL="`which smartctl 2>/dev/null`"
if [ -z "${SMARTCTL}" ] ; then
  echo "smartctl not found"
  exit 1
fi
rpm="`rpm -qf ${SMARTCTL}`"
PACKAGE="`rpm -q --info ${rpm} | awk '/Name[ \t]+:/{print $3}'`"
VERSION="`smartctl --version | awk '/^smartctl +[0-9\.]+/{print $2}'`"
BRANCH="RELEASE_${VERSION//./_}_DRIVEDB"
prefix="`rpm -ql ${rpm} | grep 'drivedb.h$' | head -n 1 | sed -e 's|^\(/[^/]\+\)/.*$|\1|g'`"
exec_prefix="${prefix}"
datarootdir='${prefix}'"/share"
datadir='${prefix}'"/share"
sbindir="${SMARTCTL%/*}"
drivedbdir='${datadir}'"\${PACKAGE}"
os_dltools="curl wget lynx"
SCRIPT=`sed \
-e 's|\(PACKAGE="\)@PACKAGE@\("\)|\1'"${PACKAGE}"'\2|;' \
-e 's|\(VERSION="\)@VERSION@\("\)|\1'"${VERSION}"'\2|;' \
-e 's|\(prefix="\)@prefix@\("\)|\1'"${prefix}"'\2|;' \
-e 's|\(exec_prefix="\)@exec_prefix@\("\)|\1'"${exec_prefix}"'\2|;' \
-e 's|\(sbindir="\)@sbindir@\("\)|\1'"${sbindir}"'\2|;' \
-e 's|\(datarootdir="\)@datarootdir@\("\)|\1'"${datarootdir}"'\2|;' \
-e 's|\(datadir="\)@datadir@\("\)|\1'"${datadir}"'\2|;' \
-e 's|\(drivedbdir="\)@drivedbdir@\("\)|\1'"${drivedbdir}"'\2|;' \
-e 's|\(os_dltools="\)@os_dltools@\("\)|\1'"${os_dltools}"'\2|;' \
-e 's|\(BRANCH="\)@DRIVEDB_BRANCH@\("\)|\1'"${BRANCH}"'\2|' "${UPDATEFILE}"`

  echo -e "${SCRIPT}" > "${UPDATEFILE}"

chmod +x "${UPDATEFILE}"
echo "run this script ./${UPDATEFILE} -v -u trac ./aa.txt"

Я не вижу смысла копировать результирующий скрипт update-smart-drivedb в родной каталог /usr/sbin/update-smart-drivedb так как диски на сервере обычно не меняются часто и обновить базу может потребоваться только при установке новых дисков. Поэтому я запускаю его прямо в домашнем каталоге /root/ проверяю во временный файл и только затем запускаю без указания целевого файла, что проведёт копирование базы прямо в целевой каталог.