Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


[TOOL] NVMe/SSD/HDD S.M.A.R.T Monitoring - Testing
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

[TOOL] NVMe/SSD/HDD S.M.A.R.T Monitoring - Testing

dIsKdIsK Member
edited June 2022 in General

Hello.
We started new project - NVMe/SSD/HDD S.M.A.R.T Monitoring.
Please anyone who wanna join testing, try it.

https://disk.lol/

Coming features:
Graphs
More to come as this is just testing...

How it works?
Each time you run smart.sh it will send the S.M.A.R.T data to our api.
Then the data is stored and get incremental id for your disk drive e.g.: https://disk.lol/view/f08f2f675d902874b98225386c12c4c45e4951183433353fe557e7c3bd319e28/_dev_sdd/1
You can also load latest S.M.A.R.T data of your disk drive by adding last at the end of url: https://disk.lol/view/f08f2f675d902874b98225386c12c4c45e4951183433353fe557e7c3bd319e28/_dev_sdd/last

Before downloading and running the script you can check the script hash:

wget -qO- https://disk.lol/smart.sh | md5sum | awk '{print $1}'
1cdbd6117452b520c94a83c31e4cee40

wget -qO- https://disk.lol/smart-test.sh | md5sum | awk '{print $1}'
6bc155992975d2a50046d0ad2cb6b7c4

Before downloading and running the script you can check if script verification was successful:

wget -q https://disk.lol/smart.sh | [[ "$(md5sum < smart.sh | awk '{print $1}')" = "1cdbd6117452b520c94a83c31e4cee40" ]] && echo "Verification of script was successful." || echo "Verification of script failed."

wget -q https://disk.lol/smart-test.sh | [[ "$(md5sum < smart-test.sh | awk '{print $1}')" = "6bc155992975d2a50046d0ad2cb6b7c4" ]] && echo "Verification of script was successful." || echo "Verification of script failed."

Before each run of script smart.sh you should also short test your disk(s):

wget -qO- https://disk.lol/smart-test.sh | sh

Downloading and running the script:

wget -qO- https://disk.lol/smart.sh | sh

Manually creating the script:
Copy and paste the code below into smart.sh
sh smart.sh
Code for smart.sh:

#!/bin/sh
for disk in $(smartctl --scan|cut -d ' ' -f1) ; do
echo "Generating S.M.A.R.T for disk: " $disk
smart=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1)
smartctl -a $disk -v 1,raw24/raw32 -v 7,raw24/raw32 > $smart
curl -F smart=@$smart https://disk.lol/api?disk=$disk
rm $smart
done
Thanked by 3vpsGOD bulbasaur Chuck
«134

Comments

  • AXYZEAXYZE Member

    We started new project

    Who is "we"?
    Were you on LET before and made this new account only to share script?

  • dIsKdIsK Member

    we the devs :)
    i always read the let forum but never bothered to register, so wanted to show off new tool, is it not allowed?

  • ZappieZappie Member, Host Rep, LIR

    Does your script has option for raid card passthrough? (couldnt find any mentions for it on the site)

  • dIsKdIsK Member
    edited June 2022

    @zappie thanks for messages and find out that hardware raid not working with our script :)

    So we need to work on hardware raid it seems. It is not working.

  • dIsKdIsK Member
    edited June 2022
  • NekkiNekki Veteran

    @dIsK said:
    we the devs :)
    i always read the let forum but never bothered to register, so wanted to show off new tool, is it not allowed?

    Hi there!

    Showing-off is certainly permitted, there is just a small fee that needs to be paid, I believe around 10 BilohBucks for the first show-off (subsequent show-offs are 25 BilohBucks). Look out for the invoice arriving at email account you used to register on LET and please pay it within 5 business days to avoid a ban.

    Happy showing-off!

    Thanked by 2cadddr WSWD
  • dIsKdIsK Member
    edited June 2022

    There is now a script that will verify the current smart.sh hash, if its updated it will show you that you need to update it.

    This is mainly fot those who want to download the smart.sh once, and you dont trust https://disk.lol/smart.sh script to be downloaded each run.

    wget https://disk.lol/smart.sh
    wget https://disk.lol/verify-and-run.sh
    sh verify-and-run.sh

    #!/bin/sh
    hash="418b2e9c8a6c4cf9ca439734961f88e6"
    disk="wget -qO- https://disk.lol/"
    
    if test -z "$($disk | grep -h $hash)"; then
    echo "Verification of script failed. Please update your script."
    echo "wget https://disk.lol/smart.sh"
    else
    echo "Verification of script was successful. Now will run smart.sh"
    sh smart.sh
    fi
    
  • dIsKdIsK Member

    New additions:
    - You can only submit S.M.A.R.T data once per hour to our api.
    - Serial Number on view page is now showing as Hidden, so you do not need to worry about the serial number being show to public.

  • @dIsK said:
    There is now a script that will verify the current smart.sh hash, if its updated it will show you that you need to update it.

    This is mainly fot those who want to download the smart.sh once, and you dont trust https://disk.lol/smart.sh script to be downloaded each run.

    wget https://disk.lol/smart.sh
    wget https://disk.lol/verify-and-run.sh
    sh verify-and-run.sh

    > #!/bin/sh
    > hash="418b2e9c8a6c4cf9ca439734961f88e6"
    > disk="wget -qO- https://disk.lol/"
    > 
    > if test -z "$($disk | grep -h $hash)"; then
    > echo "Verification of script failed. Please update your script."
    > echo "wget https://disk.lol/smart.sh"
    > else
    > echo "Verification of script was successful. Now will run smart.sh"
    > sh smart.sh
    > fi
    > 

    You should probably wget the new verify-and-run.sh too since the hash is hardcoded.

    Good to see that you've somehow managed to upload results without FTP.

  • dIsKdIsK Member
    edited June 2022

    It is year 2022, i can not understand uploading results via FTP, very secure approach :D

    That was an intention for a script verify-and-run.sh to be downloaded only once as the same goes for smart.sh - download only once in this case, then when hash changes you can manually re-download, inspect code then run.

    Btw we are on github now so you can post issues directly: https://github.com/0xDiSk/NVMe-SSD-HDD-S.M.A.R.T-Monitoring

    Added to the site:

    This script will verify if the hash of script smart.sh is correct and only then will run smart.sh (you need to manually download verify-and-run.sh and smart.sh, because each time we update smart.sh the hash will change): 
    wget -qO- https://disk.lol/verify-and-run.sh | sh
  • lol

  • I would never run anything coming from a stranger. No one should too.

  • dIsKdIsK Member
    edited June 2022

    Hi, i totally understand you would not run it.

    But:

    • We have github acc. so you can follow all the changes of hashes - script change = hash change.
    • We have script verify-and-run.sh, so you download the script once, inspect script and run it only after you wish.
    • The hashes matches our site.
    • The hashes matches in github.
    • The hashes matches the scripts.
  • dIsKdIsK Member
    edited June 2022

    If you have trust problems, the verify-and-run.sh is for you.

    Updated verify-and-run.sh
    - Now checking hash on github too.
    - The two hashes must be the same, only then the script will run. First hash is from our site. The second is from github.
    - The script smart.sh must be downloaded manually also.
    - https://github.com/0xDiSk/NVMe-SSD-HDD-S.M.A.R.T-Monitoring/blob/main/verify-and-run.sh

    We do not have nothing to hide or "hack".
    As you can see we trying to protect you and our scripts.

  • aiden1aiden1 Member

    No, the problem is you did not pay yet. You have to pay to post your script. Please read Nekki's comment.

  • dIsKdIsK Member
    edited June 2022

    @aiden1 show the proof i did not paid :P

    Btw this is how verify-and-run.sh works

    verify-and-run.sh
    |
    |--> Check if wget is installed
    |    |
    |    |--> Yes - continue
    |    |--> No  - automatically install wget and continue
    |
    |--> Check & Verify verify-and-run.sh
         |        
         |-|--> If the hash of script.sh is the same as defined in script verify-and-run.sh
         |-|--> If the hashes on disk.lol and github.com sites are the same as defined in script verify-and-run.sh
         | |
         | |--> Verification of script was successful
         |      |
         |      |--> Check if script smart.sh exisits
         |           |
         |           |--> Yes
         |           |    |    
         |           |    |--> Now will run script smart.sh (smart.sh)
         |           |     
         |           |--> No
         |                |
         |            |--> Error: script smart.sh missing.
         |                     Please download manually smart.sh script (file must be named as smart.sh) - https://disk.lol/smart.sh
         |                 
         |
         |--> Verification of script failed
          |
          | --> Error: Verification of script failed - update your script.
                Please download manually smart.sh script - https://disk.lol/smart.sh
    
  • dIsKdIsK Member
    edited June 2022

    From now on you can try it on Windows too.

    https://github.com/0xDiSk/NVMe-SSD-HDD-S.M.A.R.T-Monitoring/blob/main/windows/README.md

    Download curl for windows:
    
    https://curl.se/windows/
    
    Download smartmontools (smartctl) for windows:
    
    https://builds.smartmontools.org/ (smartmontools-win32-setup-*.exe)
    
    Install smartmontools
    
    Copy c:\Program Files\smartmontools\bin\smartctl.exe to some new location, in our case it was x:\smart\
    
    Before you start creating scripts change according to your drive.
    - Output is written to sda.txt file.
    - smartctl.exe will generate S.M.A.R.T data for /dev/sda disk
    
    Create script smart.bat:
    
    %CD%\smartctl.exe -a /dev/sda > e:\smart\sda.txt
    
    --------------------
    
    Create script curl.bat:
    
    %CD%\curl\bin\curl.exe -F smart=@sda.txt "https://disk.lol/api?disk=/dev/sda/"
    pause
    
    --------------------
    
    Run scripts:
    
    smart.bat
    curl.bat
    
    
  • fynixfynix Member

    lol

  • dIsKdIsK Member

    Show me your creations you loled lols :D

  • BlaZeBlaZe Member, Host Rep

    Awesome work man!

    If you're indeed serious about taking this tool to a new level then perhaps drop the .lol domain and get some good TLD like .sh or .io

    Thanked by 1bulbasaur
  • dIsKdIsK Member

    @BlaZe Thanks :)
    It is just a domain name bro.

  • @dIsK said:
    It is just a domain name bro.

    Some do take these things seriously still (even though they are essentially meaningless mostly). Many corporate filters drop requests for tld's like lol out of hand, many mail servers (more so, in fact) refuse all contact coming from (or claiming to come from) them. Depending on your target audience, these facts may be significant.

  • dIsKdIsK Member
    edited June 2022

    @MeAtExampleDotCom well, its free tool to use. Who wanna use it, will use it no matter the domain extension. We do not plan collect mails (we do not require any mail), we are not email company :D We have github for issues so?

  • @dIsK said:
    @MeAtExampleDotCom well, its free tool to use. Who wanna use it, will use it no matter the domain extension. We do not plan collect mails (we do not require any mail), we are not email company :D We have github for issues so?

    Just pointing out possible complications with such tlds. If those matters don't concern you at all then all is well, carry on as you are. Though:

    Who wanna use it, will use it no matter the domain extension.

    Assuming they don't mistake it for a less trust-worthy project, because when they look the home site comes up as blocked by their DNS filter. Again, not a problem if you are doing this for fun/yourself/etc but something you might want to consider otherwise.

    We do not plan collect mails (we do not require any mail), we are not email company :D We have github for issues so?

    If trusting a single third party with all communications between you and your users poses no concern, that is fine. GitHub is relatively safe in that regard, but they have locked off projects before now so personally I'd keep a secondary line of communication open through pure paranoia. Again, if this is just a shits & giggles or learning project, there is little or no need for you to care.

  • CheepCluckCheepCluck Member
    edited June 2022

    Interesting project, but I have to agree, .lol is somewhat sus, and is just as trustworthy as .xyz, but seeing this is some sort drive monitoring/reporting service, .lol seems inappropriate. In my honest opinion you should've chosen .wang. Not a TLD thats marketed for jokes and clowns. But saying that, I think I sense some appropriateness in your choice.

    But your domain is 2 days old, your account is 2 days old, and your github is 2 days old too. 🤡 honk

    Thanked by 1nikozin
  • nikozinnikozin Member
    edited June 2022

    How about adding another bash script to mark the drive as dead/broken.

    This will allow you to build a database of durability of drives by different manufacturers.

    Backblaze already provides a good amount of statistics, but how about a crowdsourced dataset

    For e.g. the webpage shows-- The drive failed after operation of 9288 hours (387 days).

  • dIsKdIsK Member
    edited June 2022

    @nikozin well the smart.sh will get all smart data, and if smart mark disk as failed then it will show as failed. If there will be a lot of failed smart data then we can for sure build a special page for it ;)

    @CheepCluck said: But your domain is 2 days old, your account is 2 days old, and your github is 2 days old too. 🤡 honk

    every site on the internet was once 2 days old, every account on let was once 2 days old, every github account was once 2 days old. 🤡 honk lol

  • @dIsK said:
    @nikozin well the smart.sh will get all smart data, and if smart mark disk as failed then it will show as failed. If there will be a lot of failed smart data then we can for sure build a special page for it ;)

    @CheepCluck said: But your domain is 2 days old, your account is 2 days old, and your github is 2 days old too. 🤡 honk

    every site on the internet was once 2 days old, every account on let was once 2 days old, every github account was once 2 days old. 🤡 honk lol

    And I guess everyone was 2 days old once before too. I once had two day old expired cheese while wearing the same underpants for 2 days.

    Gist is, no one knows you. And I trust your script as much as I trust a shell script from totallynotmalware.xyz

  • dIsKdIsK Member
    edited June 2022

    @CheepCluck

    You do not need to trust, since you can verify it.
    Did you even bother to read our github? verify-and-run.sh?

Sign In or Register to comment.