CLI¶
SMARTie comes with an optional command line interface (CLI) which can be installed with:
pip install smartie[cli]
The CLI provides human-friendly and machine-readable output for common SMARTie commands like enumerating devices and getting temperatures. It can also be used to dump raw device responses for debugging and testing.
The CLI is installed as the smartie command. Run smartie –help for a list of available commands and options.
smartie --help
List Devices¶
To list all devices connected to the system, run:
smartie enumerate
Which will output something like:
sudo smartie enumerate
Path Model Serial Temperature
────────────────────────────────────────────────────────────────────────
/dev/nvme0n1 WD_BLACK SN770 2TB 224123A00621 49
/dev/sdb Samsung SSD 860 EVO 1TB S1Z8NB0ADM0852J 28
/dev/sdc Samsung SSD 860 EVO 1TB S1Z8NB0K317857K 28
/dev/nvme1n1 WD_BLACK SN770 2TB 2WE21!200596 46
/dev/sda Samsung SSD 860 EVO 1TB S3Z8FD0K325382T 28
Device Details¶
To get detailed information about a specific device, run:
smartie details /dev/nvme0n1
Which will output something like:
sudo smartie details /dev/nvme0n1
┌───────────────┬──────────────────────────────────────────────────────────────────────────────────────┐
│ Model Number │ WD_BLACK SN770 2TB │
│ Serial Number │ 22421Q800621 │
│ Temperature │ 49°C │
│ │ SMART Attributes │
│ │ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ │
│ │ ┃ Name ┃ Value ┃ │
│ │ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │
│ │ │ Critical Warning │ ┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓ │ │
│ │ │ │ ┃ Offset ┃ Name ┃ Value ┃ │ │
│ │ │ │ ┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩ │ │
│ │ │ │ │ [000:001] │ available_spare │ 0x000 │ │ │
│ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │
│ │ │ │ │ [001:002] │ temperature │ 0x000 │ │ │
│ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │
│ │ │ │ │ [002:003] │ degraded_nvm │ 0x000 │ │ │
│ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │
│ │ │ │ │ [003:004] │ read_only │ 0x000 │ │ │
│ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │
│ │ │ │ │ [004:005] │ volatile_memory_backup │ 0x000 │ │ │
│ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │
│ │ │ │ │ [005:008] │ reserved_1 │ 0x000 │ │ │
│ │ │ │ └───────────┴────────────────────────┴───────┘ │ │
│ │ │ Temperature │ 49.85°C │ │
│ │ │ Available Spare │ 100% │ │
│ │ │ Available Spare Threshold │ 10% │ │
│ │ │ Percentage Used │ 8% │ │
│ │ │ Data Units Read │ 17905.66GB │ │
│ │ │ Data Units Written │ 140446.82GB │ │
│ │ │ Host Read Commands │ 347546295 │ │
│ │ │ Host Write Commands │ 6357604683 │ │
│ │ │ Controller Busy Time │ 15482 │ │
│ │ │ Power Cycles │ 115 │ │
│ │ │ Power On Hours │ 10135 │ │
│ │ │ Unsafe Shutdowns │ 69 │ │
│ │ │ Media and Data Integrity Errors │ 0 │ │
│ │ │ Error Information Log Entries │ 0 │ │
│ │ │ Temperature Sensors │ ┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓ │ │
│ │ │ │ ┃ Sensor ┃ Temperature ┃ │ │
│ │ │ │ ┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ │
│ │ │ │ │ 0 │ 70°C │ │ │
│ │ │ │ │ 1 │ 37°C │ │ │
│ │ │ │ └─────────────────┴──────────────────────────┘ │ │
│ │ └─────────────────────────────────┴────────────────────────────────────────────────┘ │
└───────────────┴──────────────────────────────────────────────────────────────────────────────────────┘
JSON¶
The CLI can also output JSON for easy parsing by other programs:
smartie api --help
Dump Raw Device Data¶
To dump raw device data for common commands, you can use the dump command with the device path and the command name. For example, to dump the identify command for a device, run:
smartie dump /dev/nvme0n1 identify
Which will output something like:
sudo smartie dump /dev/sdc identify
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Offset ┃ Name ┃ Value ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ [000:001] │ reserved_1 │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [001:002] │ retired_3 │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [002:003] │ response_incomplete │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [003:006] │ retired_2 │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [006:007] │ fixed_device │ 0x001 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [007:008] │ removable_media │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [008:015] │ retired_1 │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [015:016] │ device_type │ 0x000 │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [016:160] │ padding_1 │ ┌───────────────────────────────────────────────────────┬────────────────────┐ │
│ │ │ │ FF 3F 37 C8 10 00 00 00 00 00 3F 00 00 00 00 00 00 00 │ .?7.......?....... │ │
│ │ │ └───────────────────────────────────────────────────────┴────────────────────┘ │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [160:320] │ serial_number │ ┌─────────────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ │ │ 33 53 38 5A 42 4E 4B 30 31 33 38 37 37 35 20 4B 20 20 20 20 │ 3S81NK313B7115 K │ │
│ │ │ └─────────────────────────────────────────────────────────────┴──────────────────────┘ │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [320:368] │ padding_2 │ ┌───────────────────┬────────┐ │
│ │ │ │ 00 00 00 00 00 00 │ ...... │ │
│ │ │ └───────────────────┴────────┘ │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [368:432] │ firmware_revision │ ┌─────────────────────────┬──────────┐ │
│ │ │ │ 56 52 30 54 42 31 51 36 │ VR0TB1Q6 │ │
│ │ │ └─────────────────────────┴──────────┘ │
├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤
│ [432:752] │ model_number │ ┌─────────────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ │ │ 61 53 73 6D 6E 75 20 67 53 53 20 44 36 38 20 30 56 45 20 4F │ aSsmnu gSS D68 0VE O │ │
│ │ │ │ 54 31 20 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 │ T1 B │ │
│ │ │ └─────────────────────────────────────────────────────────────┴──────────────────────┘ │
└───────────┴─────────────────────┴────────────────────────────────────────────────────────────────────────────────────────┘