I need programmatic output of smartctl:
HDD identifying information: Type, Manufacturer, Model, Serial Number, Capacity
Smart data: Every field parsed for data entry, things like pending sectors, hdd temp, unrecoverable sectors, power on hours etc.
Smart errors: Number of errors at minimum, rudimentary parsing can be done (ie. are all FPDMA / DMA errors) with time passed since last error (these are irrelevant if last error is older than 2 months power on time)
Smart test log: Passed, not passed (type of error is usually read failure at sector ####) / type / power on hours when done (data used to judge if we should launch a new test).
I can give quite a lot of sample entries. Please note that the outputs vary a little bit depending on the HDD / SSD manufacturer and model, sometimes meanings change too etc.
Basic information is always the same tho.
Will submit any number sample outputs required. Will test code output on large pool of drives to see that those all parses.
Code needs to be done so that new output formats is easy to add. Proper commenting of code and code standards are a must! (camelCase, 4 spaces instead of tab, max 3 indents, max couple function calls per line, a line should not exceed ~200chars etc. the usual).
Some samples included.
Sample with hardware RAID controller: these are rare and only rudimentary information is sufficient from these.
We will own the rights to the code to do as we please, in commercial and non-commercial use, and rights to redistribute / modify etc. but we don't really care if you use this code on other projects etc.
Not in a hurry, so relaxed deadline say 6 weeks is OK
Needs to be CLI utility, for example:
takes /dev/sda smartctl -a output and outputs it as serialized data, array that looks something like:
'model' => 'ST3000DM001',
'serial' => 'XYZ123',
'smart' => array(
'hours' => 22357,
'sectorsPending' => 0,
'sectorsUnrecoverable' => 5
This will be used to analyze the data and store on a database. Keep that in mind how and what needs to be outputted.
It should accept as input either device (executes smartctl -a), textfile or piped input.
Output should also contain self-test log
16 freelancers are bidding on average $296 for this job
I value trust the most. I will guarantee the perfect results firmly in the fastest time line. Please suggest a suitable time for discussion. Thank you for your time and consideration. Best regards.