Przewodnik po narzędziu smartctl w Smartmontools dla systemu Linux
Jeśli korzystasz z VPS lub serwera dedykowanego, stabilność dysku nie jest opcjonalna — jest kluczowa dla misji. Pojedyncza awaria dysku może prowadzić do utraty danych, przestojów i kosztownej odbudowy. Dlatego administratorzy systemów Linux polegają na smartctl — potężnym narzędziu wiersza poleceń, które daje bezpośredni dostęp do diagnostyki dysków za pomocą S.M.A.R.T.
Ten przewodnik przeprowadzi Cię przez korzystanie z smartctl na Linuxie, w tym praktyczne polecenia, przykłady z rzeczywistego świata i inteligentną automatyzację.
Co to jest smartctl?
smartctl jest częścią pakietu Smartmontools. Umożliwia dostęp do S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology), wbudowanego w większość nowoczesnych HDD i SSD.
Dzięki smartctl możesz:
- Sprawdzić stan zdrowia dysku
- Uruchomić krótkie lub rozszerzone testy diagnostyczne
- Wyświetlić temperaturę i metryki wydajności
- Wykryć wczesne oznaki awarii sprzętu
Obsługiwany sprzęt obejmuje:
- Dyski SATA / IDE / SCSI / NVMe
- Zarówno SSD, jak i HDD
- Większość dystrybucji serwerów Linux i platform hostingowych
Dlaczego używać smartctl?
| Korzyść | Zaleta |
|---|---|
| Wczesne wykrywanie awarii | Zapobiegaj utracie danych zanim to nastąpi |
| Diagnostyka w czasie rzeczywistym | Monitoruj swoje dyski bez ponownego uruchamiania |
| Łatwa automatyzacja | Świetnie współpracuje z cronem, skryptami i alertami |
| Widoczność na poziomie sprzętu | Bez zgadywania — uzyskaj surowe dane z dysku |
| Przyjazny dla DevOps i sysadminów | W szerokim zakresie używany w centrach danych i serwerach chmurowych |
Jak zainstalować Smartmontools
Instalacja zależy od Twojej dystrybucji Linux:
| OS | Polecenie instalacji |
|---|---|
| Ubuntu/Debian | sudo apt update && sudo apt install smartmontools |
| CentOS/RHEL | sudo yum install smartmontools |
| Fedora | sudo dnf install smartmontools |
| Arch Linux | sudo pacman -S smartmontools |
Po zainstalowaniu, polecenie smartctl jest dostępne za pośrednictwem terminala.
Podstawowe polecenia smartctl
| Polecenie | Co robi |
|---|---|
| smartctl -i /dev/sda | Wyświetla informacje o dysku |
| smartctl -H /dev/sda | Sprawdza ogólny stan zdrowia |
| smartctl -A /dev/sda | Wyświetla szczegółowe atrybuty S.M.A.R.T. |
| smartctl -t short /dev/sda | Rozpoczyna krótki (2-minutowy) test diagnostyczny |
| smartctl -t long /dev/sda | Rozpoczyna pełny rozszerzony test diagnostyczny (10–60 min) |
| smartctl -l selftest /dev/sda | Wyświetla historię testów |
| smartctl -l error /dev/sda | Wyświetla dzienniki błędów |
📌 Zastąp /dev/sda swoim rzeczywistym dyskiem (np. /dev/nvme0n1 dla SSD NVMe).
Przykład: Sprawdzanie stanu zdrowia dysku
sudo smartctl -H /dev/sda
Oczekiwany wynik:
SMART overall-health self-assessment test result: PASSED
Jeśli wynik to PASSED, Twój dysk jest obecnie zdrowy.
Jeśli pokazuje FAILED — natychmiast wykonaj kopię zapasową i zaplanuj wymianę.
Kluczowe atrybuty SMART do monitorowania
| ID | Atrybut | Znaczenie |
|---|---|---|
| 5 | Liczba sektorów przeniesionych | Złe sektory przeniesione do rezerwowej przestrzeni |
| 197 | Aktualna liczba oczekujących sektorów | Sektory oczekujące na ponowne odczytanie |
| 198 | Liczba błędów niepoprawnych offline | Sektory z błędami odczytu/zapisu |
| 194 | Temperatura (Celsjusz) | Utrzymuj poniżej 50 °C dla optymalnej wydajności |
Wzrost wartości w tych polach = postępująca degradacja dysku.
Zalecany harmonogram monitorowania
| Zadanie | Częstotliwość |
|---|---|
| -H sprawdzenie zdrowia | Co tydzień |
| Krótk test (-t short) | Co tydzień |
| Długi test (-t long) | Co miesiąc |
| Przegląd dziennika błędów | Po awariach lub problemach z I/O |
| Monitorowanie temperatury | Na stałe (za pomocą skryptów) |
Automatyzacja z Cron
Przykład: cotygodniowy raport e-mailowy o stanie dysku
0 3 * * 1 smartctl -H /dev/sda | mail -s "SMART Health Report" you@example.com
📌 Upewnij się, że mailutils lub sendmail jest zainstalowany.
Podsumowanie
smartctl to lekkie, ale potężne narzędzie, którego żaden sysadmin nie powinien ignorować. Dzięki niemu możesz utrzymać swoje serwery w zdrowiu, twoje dane w bezpieczeństwie i twoją infrastrukturę proaktywną.


