Portál AbcLinuxu, 30. dubna 2025 10:09

Skript pro update smartmontools databáze pro Ubuntu 16.04*

10.12.2017 12:32 | Přečteno: 1195× | BASH | poslední úprava: 10.12.2017 17:30

Již delší dobu není dostupný skript pro aktualizaci smartmontools databáze disků. Proto jsem si vytvořil vlastní :-)
Ladění probíhalo na Ubuntu 16.04. Předpokládám, že by měl fungovat jak na Debianu, tak i na dalších těchto odnožích/derivátech - funkčnost uveďte v komentářích pro ostatní zájemce, děkuji.
Updater funguje od verze 6 smartmontools.
Osobně jsem si skript pojmenoval po originálu a umístil do daného umístění:
/usr/sbin/update-smart-drivedb

Skript jsem vytvářel pod rootem, což předpokládám, že není podmínkou.
Po jeho vytvoření nezapomenout na chmod +x /usr/sbin/update-smart-drivedb

Ve skriptu není ošetřeno, zda-li je smartmon tools vůbec nainstalován nebo chyb během stahování pomoci wget:
#!/bin/bash

# https://www.smartmontools.org/wiki/FAQ#MyATASATAdriveisnotinthesmartctlsmartddatabase

smart_ver_a=`smartctl -V |grep "release" |awk '{print $3}'`
smart_ver=`sed 's/\./_/' <<<"$smart_ver_a"`
smart_ver_r=`awk -F "." '{print $1}' <<<"$smart_ver_a"`
if [ $smart_ver_r -lt 6 ]; then
    echo "Pouzivas starou verzi smartmontools - $smart_ver_a, skript funguje od 6.0"
    exit 1
fi

url="https://www.smartmontools.org/browser/branches/RELEASE_""$smart_ver""_DRIVEDB/smartmontools/drivedb.h"
db="drivedb.h"

echo -n "Processing 1... "
cd "/var/lib/smartmontools/drivedb"
u1=`egrep -o "^http[s?]://" <<<"$url"`
u2=`sed 's#^http[s?]://##' <<<"$url"`
u2=`sed 's#/.*##' <<<"$u2"`

a=`wget -q -O - "$url" |grep "<a .*>Original Format" |head -n1`
echo "ok"
echo -n "Processing 2... "
link="$u1$u2"`sed 's/.*href."//;s/".*//' <<<"$a"`
wget -q -O "$db""_temp" "$link"
echo "ok"
ver_new=`grep "Id: drivedb.h" "$db""_temp" |sed 's/.*drivedb.h//' |awk '{print $1}'`
ver_old=`grep "Id: drivedb.h" "$db" |sed 's/.*drivedb.h//' |awk '{print $1}'`
if [ $ver_new -gt $ver_old ]; then
    echo "aktualizuji databázi verze $ver_old verzi $ver_new"
    mv "$db" drivedb_old.h
    cp "$db""_temp" "$db"
else
    echo "Databáze je aktuální, verze: $ver_new"
fi
rm "$db""_temp" 2>/dev/null

Skript je volně k dispozici všem, co jej využijí...        

Hodnocení: 67 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.