22 Οκτωβρίου 2025 / Lefteris Iliadis (SomniusX)
Speedtest cli (Bash) script εγκατάστασης και εκτέλεσης
22 Οκτωβρίου 2025
Speedtest Script - Αυτόματη εγκατάσταση και έλεγχος ταχύτητας
Speedtest Script - Αυτόματη εγκατάσταση και έλεγχος ταχύτητας
Λοιπόν παιδιά, έφτιαξα ένα μικρό script που κάνει τη ζωή μας πιο εύκολη όταν θέλουμε να τσεκάρουμε την ταχύτητα του ίντερνετ μας.
Το speedtest.sh είναι ένα bash script που:
Αναγνωρίζει αυτόματα τη διανομή Linux που τρέχεις (Nobara, Fedora, Ubuntu, Arch, Debian, Mint, openSUSE, κ.ά.)
Ελέγχει αν έχεις εγκατεστημένο το speedtest-cli - και αν δεν το έχεις, το κατεβάζει και το εγκαθιστά αυτόματα με τον σωστό package manager της διανομής σου (dnf, apt, pacman, zypper, κλπ)
Τρέχει ένα verbose speed test που σου δείχνει:
Download speed
Upload speed
Ping
ISP και server που χρησιμοποιήθηκε
Το καλό είναι ότι υποστηρίζει πάρα πολλές διανομές - από τις mainstream (Ubuntu, Fedora, Arch) μέχρι πιο εξειδικευμένες (Gentoo, Void, Alpine, Solus). Οπότε το τρέχεις μία φορά σε οποιοδήποτε σύστημα και δουλεύει out of the box!
Και ένα δείγμα.. :
[INFO] Detected distro: nobara 42
[INFO] speedtest-cli already installed.
[INFO] Running verbose speed test...
Retrieving speedtest.net configuration...
Testing from Vodafone Greece (XX.XX.XX.XXX)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by HOSTMEIN IKE (Athens) [0.97 km]: 34.161 ms
Testing download speed................................................................................
Download: 54.05 Mbit/s
Testing upload speed......................................................................................................
Upload: 38.03 Mbit/s
[INFO] Speed test completed!
(είμαι με hotspot οπότε ταχύτητες μαπέξ φουλ)
Απλά κάνετε bash speedtest.sh εάν δεν έχετε bash ως default $SHELL και αναλαμβάνει τα πάντα μόνο του. Πρακτικό για γρήγορο troubleshooting ή όταν θέλετε να τσεκάρετε αν ο ISP σας τηρεί τις υποσχέσεις του! 😄
Παραθέτω το actual bash script
#!/usr/bin/env bash
set -e
# Detect distro
if [[ -f /etc/os-release ]]; then
. /etc/os-release
DISTRO=$ID
VERSION=$VERSION_ID
else
echo "[ERROR] Cannot detect Linux distribution."
exit 1
fi
echo "[INFO] Detected distro: $DISTRO $VERSION"
# Function to check and install speedtest-cli
install_speedtest() {
if ! command -v speedtest-cli &>/dev/null; then
echo "[INFO] speedtest-cli not found. Installing..."
case "$DISTRO" in
fedora|nobara|rhel|centos|rocky|almalinux)
sudo dnf install -y python3-speedtest-cli
;;
ubuntu|debian|linuxmint|pop|elementary|zorin|kali|parrot|raspbian)
sudo apt update
sudo apt install -y speedtest-cli
;;
arch|manjaro|endeavouros|garuda|arcolinux)
sudo pacman -Sy --noconfirm speedtest-cli
;;
opensuse|opensuse-leap|opensuse-tumbleweed)
sudo zypper install -y python3-speedtest-cli
;;
void)
sudo xbps-install -Sy speedtest-cli
;;
alpine)
sudo apk add --no-cache py3-speedtest-cli
;;
gentoo)
sudo emerge --ask=n net-analyzer/speedtest-cli
;;
solus)
sudo eopkg install -y speedtest-cli
;;
*)
echo "[ERROR] Unsupported distro. Please install speedtest-cli manually."
exit 1
;;
esac
else
echo "[INFO] speedtest-cli already installed."
fi
}
# Run installation check
install_speedtest
# Run the verbose speed test
echo "[INFO] Running verbose speed test..."
speedtest-cli
echo "[INFO] Speed test completed!"