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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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
np tak:
# 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:
#!/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:
cat /etc/smartd.conf
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)
Offline
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:
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ę:
/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
$ man smartd.conf
Offline