Om dit probleem op te lossen, hebben ontwikkelaars compressie-algoritmen en -hulpmiddelen ontwikkeld die gegevens in realtime kunnen comprimeren, waardoor de vereiste grootte en verwerkingskracht worden verminderd. Een van deze tools is Zstandard, algemeen bekend als Zstd.
Zstd is een gratis, open-source, realtime compressie-algoritme ontwikkeld door Yann Collect, een medewerker van Facebook. Zstd is erg snel en biedt uitstekende compressieverhoudingen. Het is een lossless compressie-algoritme geschreven in C, maar heeft API-implementaties in andere populaire programmeertalen zoals Python, Java, C#, JavaScript en nog veel meer. Het biedt ook compressie- en decompressiefuncties in het geheugen.
Raadpleeg de onderstaande bron om te controleren of Zstd de door u gewenste taal ondersteunt:
https://facebook.github.io/zstd/
Als u benchmarking-informatie over Zstd wilt bekijken, gebruikt u de onderstaande link:
https://github.com/facebook/zstd
Deze tutorial laat je zien hoe je de Zstd-tool in Linux compileert en installeert, en deze vervolgens gebruikt om datacompressie en decompressie uit te voeren.
Hoe Zstd te installeren
Om Zstd te gebruiken, moeten we het installeren door te compileren vanuit de bronnen. Afhankelijk van het systeem dat u gebruikt en de configuratie, moet u mogelijk afhankelijkheden en hulpprogramma's installeren om de compilatie met succes uit te voeren.
Begin met het updaten van je systeem en het installeren van GNU make met behulp van de opdracht:
sudo apt-get updatesudo apt-get upgrade
sudo apt-get -y install build-essentiële wget tar
Zodra we alle tools hebben geïnstalleerd, kunnen we de bronbestanden downloaden en compileren. Begin door te navigeren waar u lees-, schrijf- en uitvoeringsmachtigingen hebt. ~/Bureaublad
cd ~/BureaubladGebruik vervolgens wget om de bestanden naar de map te downloaden.
wget https://github.com/facebook/zstd/releases/download/v1.4.9/zstd-1.4.9.teer.gzHaal het downloadbestand nu uit het archief en navigeer naar de map met behulp van de opdrachten als:
tar xvf zstd-1.4.9.teer.gzcd zstd-1.4.9
De laatste stappen zijn om Zstd te installeren met behulp van make en make install in de Zstd-map.
sudo makensudo make install
Zodra de compilatie en installatie met succes zijn voltooid, kunt u Zstd op uw systeem gaan gebruiken om bestanden te comprimeren en te decomprimeren.
Hoe Zstd . te gebruiken
Zstd wijkt helemaal niet af van populaire compressie- en decompressiemethoden. Hoewel de onderliggende technologie en implementatie verschillen van andere tools, is het comprimeren van een bestand met Zstd vergelijkbaar met de tar- en gzip-syntaxis.
Een bestand comprimeren
Om een bestand te comprimeren, roept u de opdracht zstd aan, gevolgd door de vlag -z, die zstd vertelt om de compressie uit te voeren, en tot slot de naam van het bestand dat moet worden gecomprimeerd.
De onderstaande opdracht comprimeert bijvoorbeeld het systeemback-upbestand in a .zst-bestand.
$ sudo zstd -z systeemback-upDe opdrachtuitvoer zoals hieronder weergegeven:
systeem-back-up: 100.00% (1821109 => 1821164 bytes, systeemback-up.zst)$ ls systeemback-up
Je zou een bestand moeten zien met .zst-extensie als:
systeem-back-up.zstZodra de opdracht is uitgevoerd, wordt het bestand gecomprimeerd en wordt een bestandsnaam gemaakt .zst-bestand dat u kunt decomprimeren.
Comprimeer en verwijder het bronbestand
Zoals je kunt zien aan de bovenstaande opdracht, wordt het bronbestand niet standaard verwijderd bij compressie. U kunt opgeven om de bronbestanden te verwijderen door de vlag -rm te gebruiken:
$ sudo zstd -z --rm systeemback-upsysteem-back-up: 100.00% (1821109 => 1821164 bytes, systeemback-up.zst)
$ ls
systeem-back-up.zst
Als u de vlag -rm opgeeft, wordt het bronbestand automatisch verwijderd.
Bestandsinfo ophalen
Om gerelateerde informatie over het gecomprimeerde Zstd-bestand weer te geven, kunt u de vlag -l gebruiken gevolgd door de bestandsnaam. De weergegeven informatie omvat de bestandsgrootte, compressieverhouding en de bestandscontrolesom
$ zstd -lv systeemback-up.zst*** zstd opdrachtregelinterface 64-bits v1.4.9, door Yann Collet ***
systeem-back-up.zst # Zstandaard Frames: 1
Venstergrootte: 1.74 MB (1821109 B)
Gecomprimeerde grootte: 1.74 MB (1821164 B)
Gedecomprimeerde grootte: 1.74 MB (1821109 B)
Verhouding: 1.0000
Controleer: XXH64
Specificeer het compressieniveau
Om het compressieniveau expliciet te specificeren, gebruikt u de - waarbij het niveau een waarde is tussen 1 - 19. Het standaard compressieniveau is 3. U kunt ook hogere compressieniveaus ontgrendelen, i.e., niveau 20 - 22.
OPMERKING: Hoe hoger het compressieniveau, hoe meer geheugengebruik.
Om bijvoorbeeld een bestand met een compressieniveau van 10 te comprimeren, gebruikt u de opdracht:
zstd -z -10 --rm systeem-backupSpecificeer compressiesnelheid.
Met Zstd kunt u ook de compressiesnelheid instellen van 1 - tot. De compressiesnelheid is omgekeerd evenredig met de compressieverhouding. De standaard compressiesnelheid is 1, en hoe hoger de waarde, hoe sneller de compressiesnelheid.
Om bijvoorbeeld de maximale compressiesnelheid te gebruiken, gebruikt u de opdracht:
sudo zstd -z --fast=10 systeemback-upCompressie-indeling opgeven
U kunt ook het te gebruiken compressieformaat specificeren als u niet van de standaard zst-compressie houdt. Formaten zijn onder meer zstd, gzip, xz, lzma en lz4.
Gebruik de vlag -format en geef het formaat op als:
zstd -z --format=gzip systeemback-upBestandslijst comprimeren
Stel dat je een lijst hebt met bestanden die je in één keer wilt comprimeren. Met Zstd kunt u een bestand met een lijst met bestanden doorgeven en recursief comprimeren.
Bijvoorbeeld een bestandenlijst.txt met de bestanden
/home/gebruiker/mysql-back-up/back-ups/config
/home/Desktop/media
/sync/2021/gebruikers
Nadat u het bestand hebt opgeslagen, kunt u de lijst doorgeven aan Zstd met alle andere opties om op de bestanden uit te voeren.
sudo zstd -z -v --rm --bestandslijstlijst.tekstDeze opdracht comprimeert alle bestanden die in het tekstbestand zijn gespecificeerd en verwijdert ze na voltooiing.
Een bestand decomprimeren
Om een bestand te decomprimeren, kunt u de vlag -d gebruiken met de opdracht zstd of gewoon de opdracht unzstd gebruiken om te decomprimeren.
Bijvoorbeeld:
sudo unzstd systeemback-up.zstsudo zstd -d systeemback-up.zst
Bestandsintegriteit verifiëren
Om de integriteit van een gecomprimeerd zst-bestand te testen, gebruikt u de vlag -t zoals weergegeven in de onderstaande opdracht:
sudo zstd -t systeem-backup.zstConclusie
Zoals we aan de voorbeelden kunnen zien, is Zstd een krachtig compressie-algoritme met talloze gebruiksscenario's. Voor meer informatie over hoe het werkt en de implementatie ervan, bekijk de man-pagina en experimenteer.
Bedankt voor het lezen.