script for testing incoming sata/sas disks
must be run as root
-y Will not prompt before erasing data
-a all tests, -slbw (z will be added when complete)
-s short S.M.A.R.T test smartctl -t short
-l long S.M.A.R.T test smartctl -t long
-b badblocks 4 passes of write/read
-w write speed test
-z .zfs test (not yet implemented)
-u unattended mode (not yet implemented)
-m Sends email 0 = no emails, 1 (default) = email status updates, 2 = email full log each time
-e Sets email address, default root
-f Formats disk after testing
-d Sets disk sdxx
full command, run all tests, erase data, and format: sudo /disktest.sh -ayf -d sdxx
smartctl(smartmontools)badblocks(e2fsprogs) .only applies to badblocks testzfs.only applies to zfs testf3.only applies to zfs testparted.only applies to zfs test or formatting
designed for sata/sas disks only, ATA info reporting is not enabled
- smart test - Short
- smart test - Long
- badblocks - standard 4 pass r/w
- test/report disk r/w speed
- zfs r/w test under compression
- create single disk zfs pool w/ compression
- run standard single pass r/w test
- destroy zfs pool
- run short/long smart test again at end?
- create flag for this?
- insert time stamps in log
- check for dependencies (based on selected flags) before running
- update "**skipping" and "**starting" inserts to make sure they log correctly
- confirm if r/w speed test is destructive
- optional: add r/w test for when disk is in use?
- add confirmation messages at beginning of script
- confirm device name and
- if badblocks/zfs is selected, confirm data erasure
- set up to run program in background
- allow input of a list of multiple disks
- flags for automatic enable/disable of individual tests
- -u flag for run in unattended mode (background/disown)
- -z flag for zfs
- add test to check for disks reporting fake size (f3?)
- have program check for dependencies before running