Um dieses Problem zu lösen, entwickelten Entwickler Komprimierungsalgorithmen und -tools, die Daten in Echtzeit komprimieren können, wodurch die erforderliche Größe und Verarbeitungsleistung reduziert wird. Eines dieser Tools ist Zstandard, allgemein bekannt als Zstd.
Zstd ist ein kostenloser Open-Source-Echtzeit-Komprimierungsalgorithmus, der von Yann Collect, einem Mitarbeiter bei Facebook, entwickelt wurde. Zstd ist sehr schnell und bietet hervorragende Kompressionsraten. Es ist ein verlustfreier Komprimierungsalgorithmus, der in C geschrieben wurde, aber API-Implementierungen in anderen gängigen Programmiersprachen wie Python, Java, C#, JavaScript und vielen mehr hat. Es bietet auch In-Memory-Komprimierungs- und Dekomprimierungsfunktionen.
Um zu überprüfen, ob Zstd Ihre gewünschte Sprache unterstützt, überprüfen Sie die unten bereitgestellte Ressource:
https://facebook.github.io/zstd/
Wenn Sie Benchmarking-Informationen zu Zstd einsehen möchten, verwenden Sie den folgenden Link:
https://github.com/facebook/zstd
Dieses Tutorial zeigt Ihnen, wie Sie das Zstd-Tool unter Linux kompilieren und installieren und es dann verwenden, um Datenkomprimierung und -dekomprimierung durchzuführen.
So installieren Sie Zstd
Um Zstd zu verwenden, müssen wir es installieren, indem wir es aus den Quellen kompilieren. Abhängig von dem von Ihnen ausgeführten System und der Konfiguration müssen Sie möglicherweise Abhängigkeiten und Tools installieren, um die Kompilierung erfolgreich durchzuführen.
Beginnen Sie damit, Ihr System zu aktualisieren und GNU make mit dem folgenden Befehl zu installieren:
sudo apt-get updatesudo apt-get upgrade
sudo apt-get -y install build-essential wget tar
Sobald wir alle Tools installiert haben, können wir die Quelldateien herunterladen und kompilieren. Navigieren Sie zunächst dorthin, wo Sie Lese-, Schreib- und Ausführungsberechtigungen haben. ~/Desktop
cd ~/DesktopAls nächstes verwenden Sie wget, um die Dateien in das Verzeichnis herunterzuladen.
wget https://github.com/facebook/zstd/releases/download/v1.4.9/zstd-1.4.9.Teer.gzEntpacken Sie nun die Download-Datei und navigieren Sie mit den folgenden Befehlen in das Verzeichnis:
tar xvf zstd-1.4.9.Teer.gzcd zstd-1.4.9
Die letzten Schritte sind die Installation von Zstd mit make und make install im Zstd-Verzeichnis.
sudo machensudo machen installieren
Sobald die Kompilierung und Installation erfolgreich abgeschlossen ist, können Sie Zstd auf Ihrem System verwenden, um Dateien zu komprimieren und zu dekomprimieren.
So verwenden Sie Zstd
Zstd weicht überhaupt nicht von gängigen Komprimierungs- und Dekomprimierungsmethoden aus. Obwohl sich die zugrunde liegende Technologie und Implementierung von anderen Tools unterscheidet, ähnelt das Komprimieren einer Datei mit Zstd der Syntax von tar und gzip.
So komprimieren Sie eine Datei
Um eine Datei zu komprimieren, rufen Sie den Befehl zstd gefolgt vom Flag -z auf, das zstd anweist, die Komprimierung durchzuführen, und schließlich den Namen der zu komprimierenden Datei.
Der folgende Befehl komprimiert beispielsweise die Systemsicherungsdatei in ein .zst-Datei.
$ sudo zstd -z system-backupDie Befehlsausgabe wie unten gezeigt:
System-Backup: 100.00% (1821109 => 1821164 Bytes, Systemsicherung.zst)$ ls System-Backup
Sie sollten eine Datei mit sehen .zst-Erweiterung als:
System-Backup.zstSobald der Befehl ausgeführt wird, wird die Datei komprimiert und erstellt einen Dateinamen .zst-Datei, die Sie dekomprimieren können.
Komprimieren und entfernen Sie die Quelldatei
Wie Sie dem obigen Befehl entnehmen können, wird die Quelldatei bei der Komprimierung standardmäßig nicht entfernt removed. Sie können angeben, dass die Quelldateien mit dem Flag -rm entfernt werden sollen:
$ sudo zstd -z --rm SystemsicherungSystem-Backup: 100.00% (1821109 => 1821164 Bytes, System-Backup.zst)
$ ls
System-Backup.zst
Die Angabe des Flags -rm entfernt automatisch die Quelldatei.
Dateiinformationen abrufen
Um verwandte Informationen über die komprimierte Zstd-Datei anzuzeigen, können Sie das Flag -l gefolgt vom Dateinamen verwenden. Die angezeigten Informationen umfassen die Dateigröße, das Komprimierungsverhältnis und die Dateiprüfsumme
$ zstd -lv system-backup.zst*** zstd-Befehlszeilenschnittstelle 64-Bit v1.4.9, von Yann Collet ***
System-Backup.zst # Zstandard Frames: 1
Fenstergröße: 1.74 MB (1821109 B)
Komprimierte Größe: 1.74 MB (1821164 B)
Dekomprimierte Größe: 1.74 MB (1821109 B)
Verhältnis: 1.0000
Prüfen: XXH64
Geben Sie die Komprimierungsstufe an
Um die Komprimierungsstufe explizit anzugeben, verwenden Sie - wobei die Stufe ein Wert im Bereich von 1 - 19 . ist. Die Standardkomprimierungsstufe ist 3. Sie können auch höhere Komprimierungsstufen freischalten, d.e., Stufe 20 - 22.
HINWEIS: Je höher die Komprimierungsstufe, desto höher die Speichernutzung.
Um beispielsweise eine Datei mit einer Komprimierungsstufe von 10 zu komprimieren, verwenden Sie den Befehl:
zstd -z -10 --rm system-backupKomprimierungsgeschwindigkeit angeben.
Mit Zstd können Sie auch die Komprimierungsgeschwindigkeit im Bereich von 1 bis . einstellen. Die Kompressionsgeschwindigkeit ist umgekehrt proportional zum Kompressionsverhältnis. Die Standardkomprimierungsgeschwindigkeit ist 1, und je höher der Wert, desto schneller die Komprimierungsgeschwindigkeit.
Um beispielsweise die maximale Komprimierungsgeschwindigkeit zu verwenden, verwenden Sie den Befehl:
sudo zstd -z --fast=10 System-BackupKomprimierungsformat angeben
Sie können auch das zu verwendende Komprimierungsformat angeben, wenn Ihnen die standardmäßige ZST-Komprimierung nicht gefällt. Zu den Formaten gehören zstd, gzip, xz, lzma und lz4.
Verwenden Sie das Flag -format und geben Sie das Format wie folgt an:
zstd -z --format=gzip-SystemsicherungDateiliste komprimieren
Angenommen, Sie haben eine Liste von Dateien, die Sie alle auf einmal komprimieren möchten. Mit Zstd können Sie eine Datei mit einer Liste von Dateien übergeben und diese rekursiv komprimieren.
Zum Beispiel eine Dateiliste.txt mit den Dateien
/home/user/mysql-backup/backups/config
/home/Desktop/medien
/sync/2021/users
Sobald Sie die Datei gespeichert haben, können Sie die Liste mit allen anderen Optionen für die Dateien an Zstd übergeben.
sudo zstd -z -v --rm --filelist list.TXTDieser Befehl komprimiert alle in der Textdatei angegebenen Dateien und entfernt sie nach Abschluss.
Eine Datei dekomprimieren
Um eine Datei zu dekomprimieren, können Sie das Flag -d mit dem Befehl zstd verwenden oder einfach den Befehl unzstd zum Dekomprimieren verwenden.
Beispielsweise:
sudo unzstd system-backup.zstsudo zstd -d system-backup.zst
Dateiintegrität überprüfen
Um die Integrität einer zst-komprimierten Datei zu testen, verwenden Sie das Flag -t, wie im folgenden Befehl gezeigt:
sudo zstd -t system-backup.zstFazit
Wie wir an den Beispielen sehen können, ist Zstd ein leistungsstarker Komprimierungsalgorithmus mit zahlreichen Anwendungsfällen. Um mehr über die Funktionsweise und Implementierung zu erfahren, lesen Sie die Manpage und experimentieren Sie.
Danke fürs Lesen.