# v1.6d-1 (08 October 2022)
# - Bug Fix for converting multiple numbers from Octal to Decimal. The previous process worked "most" of the time
# -- but we always aim for 100% working.
#
# The multi_report_config file is compatable with version back to v1.6d.
#
# v1.6d (05 October 2022)
# - Thanks goes out to ChrisRJ for offering some great suggestions to enhance and optimize the script.
# - Updated gptid text and help text areas (clarifying information)
# - Updated the -dump parameter to -dump [all] and included non-SMART attachments.
# - Added Automatic UDMA_CRC, MultiZone, and Reallocated Sector Compensation to -config advanced option K.
# - Fixed Warranty Date always showing as expired.
# - Added Helium and Raw Read Error Rates to statistical data file.
# - Added Raw Read Error Rates chart column.
# - Added compensation for Seagate Seek Error Rates and Raw Read Error Rates.
# - Added Automatic Configuration File Update feature.
# - Added selection between ZFS Pool Size or Zpool Pool Size. ZFS is representative of the actual storage capacity
# -- and updated the Pool Status Report Summary chart.
# - Added ATA Error Log Silencing (by special request).
# - Added 0.1 second delay after writing "$logfile" to eliminate intermittent file creation errors.
# - Fixed Text Report -> Drive Model Number not showing up for some drives.
# - Added option to email copy of multi_report_config.txt upon any automatic script modification and/or by day.
# v1.6d (05 October 2022)
# - Thanks goes out to ChrisRJ for offering some great suggestions to enhance and optimize the script.
# - Updated gptid text and help text areas (clarifying information)
# - Updated the -dump parameter to -dump [all] and included non-SMART attachments.
# - Added Automatic UDMA_CRC, MultiZone, and Reallocated Sector Compensation to -config advanced option K.
# - Fixed Warranty Date always showing as expired.
# - Added Helium and Raw Read Error Rates to statistical data file.
# - Added Raw Read Error Rates chart column.
# - Added compensation for Seagate Seek Error Rates and Raw Read Error Rates.
# - Added Automatic Configuration File Update feature.
# - Added selection between ZFS Pool Size or Zpool Pool Size. ZFS is representative of the actual storage capacity
# -- and updated the Pool Status Report Summary chart.
# - Added ATA Error Log Silencing (by special request).
# - Added 0.1 second delay after writing "$logfile" to eliminate intermittent file creation errors.
# - Fixed Text Report -> Drive Model Number not showing up for some drives.
# - Added option to email copy of multi_report_config.txt upon any automatic script modification and/or by day.
# -- Future Work
# ---- Change all the -config dialog to be consistent.
# ---- Optimizing Code
Please use Version 1.6c until further notice.
# v1.6d (05 October 2022)
# - Thanks goes out to ChrisRJ for offering some great suggestions to enhance and optimize the script.
# - Updated gptid text and help text areas (clarifying information)
# - Updated the -dump parameter to -dump [all] and included non-SMART attachments.
# - Added Automatic UDMA_CRC, MultiZone, and Reallocated Sector Compensation to -config advanced option K.
# - Fixed Warranty Date always showing as expired.
# - Added Helium and Raw Read Error Rates to statistical data file.
# - Added Raw Read Error Rates chart column.
# - Added compensation for Seagate Seek Error Rates and Raw Read Error Rates.
# - Added Automatic Configuration File Update feature.
# - Added selection between ZFS Pool Size or Zpool Pool Size. ZFS is representative of the actual storage capacity
# -- and updated the Pool Status Report Summary chart.
# - Added ATA Error Log Silencing (by special request).
# - Added 0.1 second delay after writing "$logfile" to eliminate intermittent file creation errors.
# - Fixed Text Report -> Drive Model Number not showing up for some drives.
# - Added option to email copy of multi_report_config.txt upon any automatic script modification and/or by day.
# -- Future Work
# ---- Change all the -config dialog to be consistent.
# ---- Optimizing Code
#
With version 1.6c you may use an external configuration file. Use [-h] to read the Help Section.
Run the program with the [-config] to create a default configuration file in the directory this script is run from.
v1.6c (28 August 2022)
- Supports external configuration file (but not required).
- Completely Configurable by running the script -config parameter (this took a lot of work).
- Added HDD/SSDmaxtempovrd variables to combat some bogus SSD values.
- Added TLER (SCT) support.
- Added support for drives which do not support recording over 65536 hours for SMART Tests and rolls over to start at zero again.
- Added -dump parameter to create and email all of the drives smartctl outputs as text file email attachments.
- Added support for Helium drives.
At lines 348 and 349 are two new options: the temperature value and if data does not exist you can change it from "N/A" to "---" (which is now the default).
### Changelog v1.6: (31 July 2022)
# - Complete rewrite of the script. More organized and easier for future updates.
# - Almost completely got rid of using AWK, earlier versions had way too much programming within the AWK structure.
# - Reads the drives much less often (3 times each I believe).
# - Added test input file to pharse txt files of smartctl -a output. This will allow for a single drive entry and ability
# -- for myself or any scri[pt writer to identify additional parameters for unrecognized drives.
# -- Usage: program_name.sh [HDD|SSD|NVM] [inputfile.txt]
# - Added better support for SAS drives.
# - Fixed NVMe and SAS Power On Hours for statistical data recording, and other things.
# - Added Critical and Warning Logs to email output with better descriptive data.
# - Logs (stored in /tmp/) no longer deleted after execution to aid in troubleshooting, but deleted at the start of the script.
# - Added HELP file, use program_name.sh [-h] [-help]
# - Added SCT Error Recovery to the Text Report section.
# - Added Zpool Size, Free Space, and Temp Min/Max.
This is the last of the 1.4c versions. It will handle simultaneous, year-long scrubs! Please report your longest scrub time in the discussion section. Joeshmuck is offering condolence prizes (if the scrub completes).