Skip to content

Instantly share code, notes, and snippets.

@ntrepid8
Created June 28, 2017 02:18
Show Gist options
  • Save ntrepid8/d6f0fafa57a42ca1b515c19e71492309 to your computer and use it in GitHub Desktop.
Save ntrepid8/d6f0fafa57a42ca1b515c19e71492309 to your computer and use it in GitHub Desktop.
Script to run speedtest-cli via cron and log the results
#!/usr/bin/env bash
LOG_PATH="/home/$(whoami)/log/speedtest.log"
if result=$(/usr/bin/speedtest --simple); then
parsed_result=$(printf "${result}\"" | sed ':a;N;$!ba;s/\n/" /g' | sed 's/: /="/g')
printf "[$(date)] ${parsed_result}\n" >> "${LOG_PATH}"
else
printf "[$(date)] error\n" >> "${LOG_PATH}"
exit 1
fi
exit 0
@ntrepid8
Copy link
Author

The log lines look like this:

[Wed Jun 28 02:11:32 UTC 2017] Ping="6.835 ms" Download="764.91 Mbit/s" Upload="244.43 Mbit/s"

@ntrepid8
Copy link
Author

The cron entry to run each hour at 5 minutes after looks like this:

# speedtest log
5 * * * * /path/to/script/cron_speedtest

@aausek
Copy link

aausek commented Sep 30, 2018

Hi there. I'm very new to cron jobs but also eager to learn. I've tried to edit the syntax of the cron job itself without success. Would you be able to help me with this matter?
Right now this is what I have "* * * * * ~/Desktop/MAIN/code/speedtest.sh" however keep getting the error "No such file or directory".

Thank you.

@lpil
Copy link

lpil commented Oct 18, 2018

@aausek You will need to provide an absolute path, rather than one that uses the ~ home shortcut.

@qtronixx
Copy link

qtronixx commented Nov 27, 2019

Hi there.
when i run the script, I have such an error.

sed: 1: ":a;N;$!ba;s/\n/" /g": unused label 'a;N;$!ba;s/\n/" /g'

@KaloyanP
Copy link

If your script doesn't run and your logs (get them with sudo grep CRON /var/log/syslog contain:

(CRON) info (No MTA installed, discarding output)

You might have to change the permissions on the script to be executable with chmod +x <name of script>.

@toddaitkins
Copy link

I got the script to work but I don't think the sed is working. I can't decipher it and not sure its intent but when I run the command without the two sed redirects it gives the same output either way. The output is dispersed across three lines instead of a nice neat one line log entry.

@ethanrusz
Copy link

Came in handy after changing /usr/bin/speedtest to /usr/bin/speedtest-cli. Thanks!

@tenorediforza
Copy link

Thank you. Works like a charm.
I had to manually put my home folder on LOG_PATH, for some reason the $(whoami) didn't work for me. Also /home/$(whoami)/log/ Doesn't exist on Ubuntu 24
Thanks again!.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment