Skip to main content

Email yourself an internet speed test report

Run Ookla's speed test on a Linux box and email the result, for example to keep a record of your ISP's performance.

Install the Ookla CLI

Install it from Ookla's package repository, rather than piping a web script into sudo bash:

# Download the repo setup script, read it, then run it
curl -fsSLo /tmp/ookla.sh https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.rpm.sh
less /tmp/ookla.sh && sudo bash /tmp/ookla.sh
sudo dnf install speedtest

To check whether a package is installed, use rpm -q speedtest. rpm -qa speedtest always returns success, even when the package is missing.

Run and send

#!/bin/bash
set -euo pipefail
tmp=$(mktemp -d); trap 'rm -rf "$tmp"' EXIT
speedtest --accept-license --accept-gdpr > "$tmp/speedtest.txt"
enscript -q -p - "$tmp/speedtest.txt" | ps2pdf - "$tmp/speedtest.pdf"
mutt -s "Speed test $(hostname -s) $(date +%F)" -a "$tmp/speedtest.pdf" -- you@example.com < "$tmp/speedtest.txt"

Points to note:

  • Run mutt in the foreground. If you background it with & and then delete the attachment, the email can go out without it.
  • Use mktemp rather than fixed names in /tmp.

Requirements

speedtest, enscript, ghostscript (ps2pdf), mutt and a working mail relay.

Schedule it (optional)

0 7 * * * root /usr/local/bin/speedtest-report.sh