Bash und DD: Testen der Geschwindigkeit von Flash-Laufwerken mit einem einfachen Skript
Flash-Laufwerke werden häufig zum Speichern und Übertragen von Daten verwendet, aber ihre Geschwindigkeit kann je nach Gerät und Umgebung, in der sie verwendet werden, variieren. Wenn Sie die Geschwindigkeit Ihres Flash-Laufwerks messen möchten, können Sie ein einfaches Skript verwenden, das in bash geschrieben wurde und den Befehl dd verwendet. In diesem Artikel erklären wir, wie Sie ein Bash-Skript schreiben und ausführen, das die Lese- und Schreibgeschwindigkeit Ihres Flash-Laufwerks testet, und geben einen Überblick über die Funktionsweise des Skripts. Egal, ob Sie ein Anfänger oder ein erfahrener Linux-Benutzer sind, dieses Skript ist eine einfache und effiziente Möglichkeit, die Leistung Ihres Flash-Laufwerks zu messen.
In diesem Tutorial lernen Sie:
- So schreiben Sie ein Bash-Skript und führen es aus, um die Lese- und Schreibgeschwindigkeit eines Flash-Laufwerks zu testen
- Ein Überblick über den Befehl
ddund wie er zum Testen der Geschwindigkeit von Flash-Laufwerken verwendet werden kann - Interpretieren der Ergebnisse des Geschwindigkeitstests für Flash-Laufwerke und Verstehen der Leistung Ihres Geräts
- Tipps zur Verbesserung der Geschwindigkeit Ihres Flash-Laufwerks, falls erforderlich
Messen der Leistung von USB-Sticks mit einem einfachen Shell-Skript
Das Messen der Lese- und Schreibgeschwindigkeit eines USB-Sticks ist eine einfache, aber wichtige Aufgabe, insbesondere wenn Sie einen neuen USB-Stick kaufen oder die Leistung eines vorhandenen USB-Sticks testen möchten. Dies kann unter Linux einfach mit Hilfe eines Shell-Skripts erfolgen. In diesem Artikel schauen wir uns ein einfaches Shell-Skript an, mit dem die Lese- und Schreibgeschwindigkeit eines USB-Sticks gemessen werden kann. Speichern Sie den Inhalt des folgenden Skripts in einer Datei mit einem beliebigen Texteditor.
Stellen Sie vor dem Ausführen des Skripts sicher, dass das USB-Laufwerk, das Sie testen möchten, im Verzeichnis /media/usbstick bereitgestellt ist.
#!/bin/bash
if [ ! -d "/media/usbstick" ]; then
# If the USB stick is not mounted, print an error message and exit
echo "Error: USB stick is not mounted at /media/usbstick. Please mount the USB stick and try again."
exit 1
fi
dd if=/dev/zero of=/media/usbstick/testfile bs=1M count=1024 2> /dev/null
Clear the disk cache
sh -c 'echo 3 > /proc/sys/vm/drop_caches'
{ time dd if=/dev/zero of=/media/usbstick/testfile bs=1M count=1024 oflag=dsync; } 2>&1 | awk '/real/ {print $2}' > write_time.txt
write_time_raw=$(cat write_time.txt)
write_time_minutes=$(echo $write_time_raw | awk -Fm '{print $1}')
write_time_seconds=$(echo $write_time_raw | awk -Fm '{print $2}' | awk -Fs '{print $1}')
write_time=$(echo "$write_time_minutes * 60 + $write_time_seconds" | bc)
write_speed=$(echo "1024 / $write_time" | bc)
echo "Write speed: $write_speed MB/s"
rm write_time.txt
Clear the disk cache
sh -c 'echo 3 > /proc/sys/vm/drop_caches'
{ time dd if=/media/usbstick/testfile of=/dev/null bs=1M count=1024; } 2>&1 | awk '/real/ {print $2}' > read_time.txt
read_time_raw=$(cat read_time.txt)
read_time_minutes=$(echo $read_time_raw | awk -Fm '{print $1}')
read_time_seconds=$(echo $read_time_raw | awk -Fm '{print $2}' | awk -Fs '{print $1}')
read_time=$(echo "$read_time_minutes * 60 + $read_time_seconds" | bc)
read_speed=$(echo "1024 / $read_time" | bc)
echo "Read speed: $read_speed MB/s"
rm read_time.txt
Beispielausgabe:
Der Zweck dieses Shell-Skripts besteht darin, die Lese- und Schreibgeschwindigkeiten eines USB-Sticks zu messen. Das Skript prüft zunächst, ob der USB-Stick am Speicherort /media/usbstick gemountet ist. Wenn der USB-Stick nicht gemountet ist, gibt das Skript eine Fehlermeldung aus und wird beendet.
Als nächstes erstellt das Skript mit dem Befehl dd eine Testdatei von 1 GB auf dem USB-Stick. Der Befehl dd wird wieder verwendet, um die Schreibgeschwindigkeit zu messen, indem die Testdatei auf den USB-Stick geschrieben wird. Die Zeit, die zum Schreiben der Testdatei benötigt wird, wird mit dem Befehl time aufgezeichnet und die Ausgabe wird in eine Datei umgeleitet, die write_time.txt.
Die Option
oflag=dsync mit dem Befehl dd stellt sicher, dass Daten sofort und sicher auf das Speichergerät geschrieben werden. Im Gegensatz zum Standardverhalten von dd, bei dem Ausgabedaten gepuffert werden, schreibt das dsync-Flag Daten physisch auf das Speichergerät, bevor sie zurückgegeben werden, wodurch potenzieller Datenverlust vermieden wird. Diese Option ist nützlich in Situationen, in denen die Datenintegrität Priorität hat, auch wenn dies zu langsameren Schreibgeschwindigkeiten führt.Das Skript extrahiert dann die Zeit, die zum Schreiben der Testdatei benötigt wurde, aus write_time.txt und berechnet die Schreibgeschwindigkeit in MB/s, indem es die Größe der Testdatei (1 GB) durch die benötigte Zeit dividiert. Wenn die Schreibzeit Null ist, wird eine Fehlermeldung ausgegeben und das Skript beendet. Die Schreibgeschwindigkeit wird dann auf das Terminal gedruckt.
Das Skript wiederholt diese Schritte, um die Lesegeschwindigkeit zu messen, indem es die Testdatei vom USB-Stick ausliest und die mit dem Zeitbefehl benötigte Zeit aufzeichnet. Die Lesegeschwindigkeit wird auf die gleiche Weise wie die Schreibgeschwindigkeit berechnet und ebenfalls auf das Terminal gedruckt.
Dieses Skript bietet eine einfache und schnelle Möglichkeit, die Lese- und Schreibgeschwindigkeiten eines USB-Sticks zu messen, und kann nützlich sein, um die Leistung verschiedener USB-Sticks zu testen oder Probleme mit langsamen Übertragungsgeschwindigkeiten zu beheben.
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass dieses Shell-Skript eine einfache und effektive Möglichkeit bietet, die Lese- und Schreibgeschwindigkeiten eines USB-Sticks zu messen. Wenn Sie die Geschwindigkeiten Ihres USB-Sticks verstehen, können Sie feststellen, ob er optimal funktioniert oder ob es Raum für Verbesserungen gibt.
Wenn die Geschwindigkeiten Ihres USB-Sticks nicht so hoch sind, wie Sie es gerne hätten, gibt es ein paar Tipps, die Ihnen helfen können, die Leistung zu verbessern:
- Verwenden Sie einen USB 3.0-Anschluss, falls verfügbar: USB 3.0 bietet im Vergleich zu USB 2.0 schnellere Übertragungsgeschwindigkeiten, sodass die Verwendung eines USB 3.0-Anschlusses dazu beitragen kann, die Geschwindigkeit Ihres USB-Sticks zu verbessern.
- Formatieren Sie den USB-Stick mit einem schnellen Dateisystem: Unterschiedliche Dateisysteme haben unterschiedliche Leistungsmerkmale, so dass die Wahl des richtigen Dateisystems einen erheblichen Einfluss auf die Geschwindigkeit Ihres USB-Sticks haben kann. Dateisysteme wie NTFS, exFAT und FAT32 sind in der Regel schneller als andere, z. B. ext2 oder ext3.
- Vermeiden Sie die Verwendung des USB-Sticks für mehrere Zwecke: Wenn Sie Ihren USB-Stick sowohl zum Speichern von Dateien als auch zum Ausführen von Anwendungen verwenden, kann dies die Übertragungsgeschwindigkeit verlangsamen. Um dies zu vermeiden, verwenden Sie am besten separate USB-Sticks für unterschiedliche Zwecke.
- Verwenden Sie einen hochwertigen USB-Stick: Nicht alle USB-Sticks sind gleich, und die Qualität des USB-Sticks kann einen großen Einfluss auf seine Geschwindigkeit haben. Suchen Sie nach einem hochwertigen USB-Stick einer renommierten Marke und lesen Sie unbedingt die Bewertungen, bevor Sie einen Kauf tätigen.
Wenn Sie diese Tipps befolgen, können Sie sicherstellen, dass Ihr USB-Stick die beste Leistung erbringt und schnelle und zuverlässige Übertragungsgeschwindigkeiten für alle Ihre Daten bietet.

