Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2018-01-09 12:01:32

  jacek22 - Użytkownik

jacek22
Użytkownik
Zarejestrowany: 2017-12-13

analiza dysku

witam, korzystam z narzędzia smartctl - w jaki sposób sprawdzić mogę czy dysk nadaje sie do uzytku albo nie jest ostro zajechany i zaraz moze odleciec w kosmos?

na które parametry powinienem zwrócić uwage?

chce napisac skrypt w bashu do automatycznego wykrywania takiego dysku w ramach nauki ale nie wiem, które parametry powinny zostac wziete pod uwage i w jaki wartosciach najlepiej

Offline

 

#2  2018-01-09 13:49:13

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: analiza dysku

np tak:

Kod:

# G1 ###   wto sty 09 13:42:39  domek : ~ 
root ~> smartcheck

/dev/sda - Model: Seagate Barracuda ES
/dev/sda - Symbol: ST3400620NS
/dev/sda - Seria: 9QH0BX9K
/dev/sda: Power_On_Hours = 38930
/dev/sda: Reallocated_Sector_Ct = 0
/dev/sda: Spin_Retry_Count = 0
/dev/sda: Reported_Uncorrect = 0
/dev/sda: Current_Pending_Sector = 0
/dev/sda: Offline_Uncorrectable = 0
/dev/sda: UDMA_CRC_Error_Count = 0
/dev/sda: Multi_Zone_Error_Rate = 0

Skrypcio wygląda tak:

Kod:

#!/bin/bash
#

SMARTCTL=`which smartctl 2>/dev/null`

if [ -z $SMARTCTL ] || [ ! -x $SMARTCTL ]; then
 echo "It seems you have no smartmontools installed. "
 echo "Invoke 'apt install smartmontools' and re-run script"
 exit 1
fi

function check {
tmp_parm=`mktemp`
tmp_name=`mktemp`
$SMARTCTL -A $1 | sed -r 's/^\s+//g' > $tmp_parm
$SMARTCTL -i $1| sed -r 's/^\s+//g' > $tmp_name

echo -e $1 - `egrep -m1 "Model " $tmp_name | awk '{$1="";$2=""; print  "Model:   "$0}'`
echo -e $1 - `egrep -m1 "Device " $tmp_name | awk '{$1="";$2=""; print "Symbol:  "$0}'`
echo -e $1 - `egrep -m1 "Serial " $tmp_name | awk '{$1="";$2=""; print "Seria:   "$0}'`

for val in 9 5 10 11 171 172 177 181 187 188 196 197 198 199 200 231 ; do
 print=`egrep "^$val " $tmp_parm | awk '{ print $2" = "$10 }'`
  if [ ! -z "$print" ]; then
   echo -n "$1: "
  if  [[ `echo $print | grep "Power_On_Hours" ` ]]; then
   echo -e "\033[36;2m$print\033[0m"
  elif [ `echo $print | awk '{ print $3 }'` != 0 ]; then
   echo -e "\033[31;2m$print\033[0m"
  else
   echo -e "\033[32;2m$print\033[0m"
  fi
 fi
done

echo


rm -f $tmp_parm
rm -r $tmp_name

}

if [ $# -gt 0 ]; then
 devices=$@
else
 devices=`ls /dev/sd[a-z] 2>/dev/null ; ls /dev/nvme[0-9]n[0-9] 2>/dev/null`
fi

echo
if [ -b /dev/twe0 ]; then
 check "-d 3ware,0 /dev/twe0"
 check "-d 3ware,1 /dev/twe0"
else
 for d in $devices; do
  check $d
 done
fi

Poza tym skonfiguruj sobie dostarczanie maili systemowych do skrzynki (np przez ESMTP), skonfiguruj demona smartd, żeby pilnował parametrów dysków,
w razie problemów dostaniesz eleganckiego maila z informacją.

Sznurki:
https://wiki.archlinux.org/index.php/S.M.A.R.T.#daemon_management
https://www.techrepublic.com/blog/linux-and-open-so … -user-system/

Ja np mam tak ustawione:

Kod:

 cat /etc/smartd.conf

Kod:

DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -W 4,35,48  -m root
/dev/sda -H -l error -l selftest -t -I 194-W 4,40,48 -R 5 -m root

Gdzie parametr  -m root oznacza, gdzie ma posłać pocztę (adres email lub nazwa użytkownika (p ile masz ustawione aliansy pocztowe)).

Pozdro

Ostatnio edytowany przez Jacekalex (2018-01-09 13:56:44)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2018-01-09 14:09:28

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: analiza dysku

Ale kombinujecie. xD

Demon smart potrafi sam wykrywać takie "padające w niedługim czasie" dyski i wysyła odpowiedni komunikat w logu systemowym. Praktycznie można sobie monitorować każdy z parametrów i jak te będą ulegać zmianie, to w logu będzie stosowna informacja, np:

Kod:

Jan 07 18:11:31 morfikownia smartd[1286]: Device: /dev/sda [SAT], SMART Prefailure Attribute: 3 Spin_Up_Time changed from 142 to 141
Jan 08 10:54:23 morfikownia smartd[1286]: Device: /dev/sda [SAT], SMART Prefailure Attribute: 3 Spin_Up_Time changed from 141 to 142
Jan 08 18:49:01 morfikownia smartd[1286]: Device: /dev/sda [SAT], SMART Prefailure Attribute: 3 Spin_Up_Time changed from 142 to 141

A wszystko można se ustawić w /etc/smartd.conf . Ja mam tam taką linijkę:

Kod:

/dev/sda -H -l error -l selftest -t -I 190 -I 194 -W 0,50,55

No i ona:
- włącza monitoring dysku /dev/sda
- sprawdza status żywotności dysku
- sprawdza liczbę błędów dysku
- sprawdza ilość błędnych testów
- monitoruje zmiany we wszystkich atrybutach dysku
- ignoruje zmiany w prametrach 190 i 194, które w przypadku mojego dysku odpowiadają za temperaturę.
- wypisuje log z informacją jedynie w przypadku gdy temperatura dysku przekroczy 50 stopni, a gdy przekroczy 55 to wysyła maila na konto root.

Ta konfiguracja może być rozbudowana jak cholera wliczając w to również automatyczne przeprowadzanie testów co jakiś czas. Więcej info jest w

Kod:

$ man smartd.conf

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)