8.3 Tömörítés és archívumkezelés

A számítástechnikában az adatok felhalmozódása elkerülhetetlen. Legyen szó a személyes dokumentumaidról, a játékmentéseidről, a helyi mesterséges intelligencia modellek konfigurációiról vagy egy teljes webáruház adatbázisáról, hamar eljön a pillanat, amikor az adatokat rendszerezni, költöztetni vagy biztonságos helyre kell menteni. Ekkor lép be a képbe az archívumkezelés és a tömörítés.

Windows környezetben megszokhattad, hogy az olyan grafikus programok, mint a WinRAR vagy a 7-Zip, egyetlen lépésben elintéznek mindent: kijelölöd a mappát, rákattintasz, és kapsz egy .zip vagy .rar fájlt. A Linux világában azonban a háttérben egy sokkal tisztább, moduláris filozófia uralkodik, amely különválasztja a fájlok egybecsomagolását (archiválás) a fájlok méretének csökkentésétől (tömörítés).

Ebben az alfejezetben megértjük ezt a klasszikus parancssori logikát, elsajátítjuk a legfontosabb eszközök (tar, gzip, zip, unzip) használatát, végül pedig megírjuk az első saját, teljesen automatizált biztonsági mentési szkriptünket.


8.3.1 A Linux filozófia: archiválás vs. tömörítés

Mielőtt billentyűzetet ragadnál, fontos tisztázni a két alapfogalom közötti különbséget, mert a Linux parancsok nevei és kapcsolói közvetlenül ebből fakadnak.

  1. Archiválás: Ez az a folyamat, amikor több száz különálló fájlt és mappát – megtartva azok belső szerkezetét, könyvtárfájait, sőt, a linuxos tulajdonosi és hozzáférési jogosultságait is – egyetlen közös nagy fájlba fűzünk össze. Ez a lépés önmagában nem csökkenti az fájlok méretét, ám sok ezernyi apró fájlt mindig érdemes inkább egy fájlba összecsomagolni. Olyan ez, mintha sok kis könyvet belepakolnál egyetlen nagy kartondobozba. A Linux natív archiváló eszköze a tar.
  2. Tömörítés (Compression): Ez az a folyamat, amikor egy matematikai algoritmus segítségével (amely megkeresi a szöveges vagy bináris ismétlődéseket) átalakítjuk a fájl tartalmát, hogy az kevesebb helyet foglaljon a merevlemezen. A Linux klasszikus tömörítő eszközei (mint a gzip vagy az xz) egyszerre csak egyetlen egyedi fájlon képesek dolgozni. Nem tudnak mappákat kezelni.

Ez a két lépés kombinálható: a tar paranccsal összefogunk ezer fájlt egyetlen nagy „dobozba”, majd ezt a dobozt átadjuk a gzip programnak, ami összepréseli azt. Az eredmény egy úgynevezett szalagarchívum lesz, amelynek a kiterjesztése .tar.gz (vagy röviden .tgz).


8.3.2 A tar parancs

A tar elnevezés a történelmi Tape Archive (szalagarchívum) kifejezésből származik, ugyanis a hőskorban ezzel a paranccsal mentették az adatokat fizikai mágnesszalagokra. Bár a mágnesszalagokat ma már felváltották az NVMe SSD-k, a tar parancs pozíciója megingathatatlan maradt.

A tar használatához meg kell tanulnod néhány alapvető kapcsolót. Jó hír, hogy ezeket nem kell egyenként megjegyezned: a Linuxosok fix betűszavakat használnak a napi munka során.

1. Archívum létrehozása tömörítés nélkül (.tar)

Ha csak össze szeretnél fogni egy mappát egyetlen fájlba, a kapcsolók kombinációja a -cvf lesz.

  • c = Create (Létrehozás)
  • v = Verbose (Részletes lista a képernyőre a folyamatban lévő fájlokról)
  • f = File (Meghatározza, hogy a parancs után közvetlenül az elkészítendő archívum fájlneve következik)

tar -cvf archivum_neve.tar menteni_kivant_mappa/

Példa:

tar -cvf konyvek.tar /var/home/kjanos/Dokumentumok/Konyvek/

2. Tömörített archívum létrehozása

A modern tar képes arra, hogy a háttérben automatikusan meghívja a tömörítő algoritmusokat, így neked nem kell két külön parancsot kiadnod. Ehhez csak egyetlen extra betűt kell beszúrnod a kapcsolók közé:

  • z (GZIP algoritmus): Gyors, kicsi a processzorigénye, cserébe közepes tömörítési arányt biztosít. Kiterjesztése: .tar.gz

tar -czvf mentes.tar.gz ~/Dokumentumok/

  • J (XZ algoritmus): Rendkívül modern, brutális hatékonysággal préseli össze az adatokat (akár fele akkora fájlt eredményezhet, mint a gzip), cserébe sokkal lassabb és komoly CPU-erőforrást igényel a csomagolás. Kiterjesztése: .tar.xz

tar -cJvf AI_modellek.tar.xz ~/LM_Studio/config/

Tömörítési típus Kapcsoló Kiterjesztés Sebesség Hatékonyság (Méretcsökkentés)
Sima tar -cvf .tar Ultra-gyors (csak másol) Nincs (0%)
Gzip -czvf .tar.gz Gyors
Xz -cJvf .tar.xz Lassú Kiváló (Maximális)

3. Archívumok kibontása (Kicsomagolás)

Ha letöltöttél egy .tar.gz vagy .tar.xz csomagot az internetről, vagy vissza szeretnél állítani egy korábbi mentést, az eddig használt c (create) kapcsolót egyszerűen le kell cserélned az x (Extract - Kibontás) kapcsolóra. A tömörítés típusát a modern tar automatikusan felismeri, így nem kötelező megadnod a z vagy J betűket!

Kicsomagolás az aktuális mappába, amiben állsz:

tar -xvf mentes.tar.gz

Kicsomagolás egy specifikus, másik mappába (a -C kapcsoló használatával):

tar -xvf mentes.tar.gz -C /var/home/kjanos/Letöltések/visszaallitott/


8.3.3 Zip és Unzip: A platformfüggetlen formátum

Bár a tar.gz a Linux natív és tökéletes eszköze, van egy óriási hátulütője: a Windows operációs rendszert használó ismerőseid, kollégáid vagy ügyfeleid alapesetben nem tudják mit kell kezdeni egy .tar.xz fájllal, ha elküldöd nekik e-mailben. Ha olyan adatcsomagot készítesz, amelyet Windows vagy macOS rendszerekkel is meg akarsz osztani, a klasszikus ZIP formátumot kell használnod.

A zip és unzip parancsok nem részei a tar ökoszisztémának; ezek különálló kis célszoftverek.

Fájlok és mappák tömörítése zip-be

A legfontosabb szabály mappák esetén a -r (rekurzív) kapcsolót kell használni. Ha ezt elfelejted, a zip parancs csak egy üres mappa-héjat hoz létre, a benne lévő fájlokat nem csomagolja be!

zip -r elkeszult_fajl.zip forras_mappa/

Példa:

zip -r kepek_kuldesre.zip ~/Képek/Nyaralas_2026/

Zip fájlok kicsomagolása

A kicsomagolás pofonegyszerű az unzip paranccsal:

unzip kepek_kuldesre.zip

Ha nem az aktuális helyre, hanem egy konkrét mappába szeretnéd kényszeríteni a kicsomagolást, használd a -d (Directory) kapcsolót:

unzip kepek_kuldesre.zip -d ~/Dokumentumok/MegosztottKepek/


8.3.4 Gyakorlati alkalmazás: Manuális biztonsági mentések okosan

Mielőtt az automatizációra rátérnénk, nézzük meg, hogyan tudsz kézzel egy professzionális mentést készíteni. A legnagyobb hiba, amit elkövethetsz, ha fixen mindig ugyanazt a nevet adod a mentésednek (pl. mentes.tar.gz), mert így minden újabb futtatás felülírja a régit, és ha tegnap töröltél ki egy fontos fájlt, az mára végleg eltűnik a mentésből is.

A megoldás a időbélyegek (timestamps) használata a fájlnévben. A Linux date parancsa képes lekérni az aktuális időt tetszőleges formátumban. Próbáld ki ezt a parancsot a terminálodban:

date +%Y%m%d # Kimenet: 20260628 (Év-Hónap-Nap bontásban)

Ezt a logikát beágyazhatjuk magába a tar parancsba a parancshelyettesítés ($()) segítségével:

tar -czvf config_backup_$(date +%Y%m%d).tar.gz ~/.config/

A parancs lefutása után egy tökéletesen azonosítható, egyedi fájlt kapsz (például: config_backup_20260628.tar.gz). Így naponta futtathatsz mentéseket, precízen látni fogod az idővonalat, és bármikor visszaléphetsz egy tetszőleges múltbéli nap állapotára.


8.3.5 Automatikus mentési szkriptek írása

Elérkeztünk a fejezet legizgalmasabb pontjához. Miért gépelnénk be ezeket a parancsokat minden áldott nap manuálisan, ha megkérhetjük a számítógépet, hogy végezze el helyettünk a háttérben? Írni fogunk egy professzionális Bash szkriptet (egy mini programot), ami összegyűjti a megadott mappáinkat, tömörített mentést készít belőlük egy dedikált mentési könyvtárba, és automatikusan takarít maga után, hogy a merevlemezünk ne teljen be a végtelenségig.

1. A szkriptfájl létrehozása

Hozzuk létre a szkriptet a korábban megismert modern micro (vagy nano) szerkesztővel a saját mappánkban:

micro ~/rendszer_mentes.sh

2. A szkript kódja

Másold be az alábbi kódot a szerkesztőbe. Olvasd el figyelmesen a kommenteket (a # jellel kezdődő sorokat), mert azok magyarázzák el a működést:

#!/bin/bash

# ==========================================
# PROFESSZIONÁLIS AUTOMATIKUS MENTÉSI SZKRIPT
# ==========================================

# 1. BEÁLLÍTÁSOK (Módosítsd a saját igényeid szerint!)
FORRAS_MAPPA="/var/home/kjanos/Dokumentumok"
MENTES_DIR="/var/home/kjanos/Biztonsagi_Mentesek"
IDOBELYEG=$(date +%Y%m%d_%H%M%S)
FAJLNEV="dokumentumok_mentes_${IDOBELYEG}.tar.gz"

# 2. MENTÉSI MAPPA ELLENŐRZÉSE
# Ha nem létezik a célmappa, a szkript automatikusan létrehozza
if [ ! -d "$MENTES_DIR" ]; then
    echo "A mentési könyvtár nem létezik. Létrehozás: $MENTES_DIR"
    mkdir -p "$MENTES_DIR"
fi

# 3. A MENTÉSI FOLYAMAT INDÍTÁSA
echo "----------------------------------------"
echo "Biztonsági mentés indítása..."
echo "Forrás: $FORRAS_MAPPA"
echo "Célfájl: $MENTES_DIR/$FAJLNEV"
echo "----------------------------------------"

# A tar parancs futtatása. A háttérben gzip tömörítést használunk.
tar -czvf "$MENTES_DIR/$FAJLNEV" "$FORRAS_MAPPA"

# 4. SIKERESSÉG ELLENŐRZÉSE
# A Linuxban a $? változó tárolja az utolsó parancs kilépési kódját. A 0 jelenti a sikert.
if [ $? -eq 0 ]; then
    echo "----------------------------------------"
    echo "SIKER: A biztonsági mentés sikeresen elkészült!"
    echo "----------------------------------------"
else
    echo "HIBA: A mentés során hiba lépett fel!" >&2
    exit 1
fi

# 5. AUTOMATIKUS TAKARÍTÁS (Opcionális, de hasznos!)
# Hogy ne teljen meg a lemez, ez a parancs megkeresi a mentési mappában az 
# 30 napnál régebbi (.tar.gz) fájlokat, és kíméletlenül letörli őket.
echo "Régi mentések ellenőrzése és takarítása..."
find "$MENTES_DIR" -type f -name "*.tar.gz" -mtime +30 -exec rm {} \;
echo "Takarítás kész. A szkript sikeresen lefutott."

Mentsd el a fájlt (Ctrl + S), majd lépj ki a szerkesztőből (Ctrl + Q).

3. A szkript futtathatóvá tétele

Ha most megpróbálnád elindítani ezt a szkriptet, a Linux biztonsági okokból megtagadná a végrehajtást, mert egy újonnan létrehozott szöveges fájlnak alapértelmezetten nincs "futtatási" jogosultsága. Ruházzuk fel a fájlt ezzel a joggal a chmod paranccsal:

chmod +x ~/rendszer_mentes.sh

4. A szkript tesztelése

Most már indíthatod a saját programodat a terminálból. Mivel a saját mappádban állsz, a parancs elé ki kell tenned a ./ jelzést (ami azt mondja a rendszernek, hogy pontosan az aktuális könyvtárban keresse a végrehajtandó fájlt):

./rendszer_mentes.sh

Nézd végig a képernyőn lefutó szövegeket. Ha mindent jól csináltál, a szkript végén megjelenik a zöld "SIKER" üzenet. Ellenőrizheted az eredményt az ls paranccsal:

ls -lh ~/Biztonsagi_Mentesek/

Látni fogod a precízen, másodpercre pontosan felcímkézett tömörített archívumodat.


Hogyan tovább? Automatizáljunk

Most már van egy saját, működő mentési szkripted. Ahhoz azonban, hogy ez a szkript magától, emberi beavatkozás nélkül fusson le például minden éjjel 2:00-kor, össze kell kötnünk a rendszerszintű időzítőkkel. Ezt a feladatot a Linuxban a tradicionális cron vagy a modern systemd-timers végzi. Ezeknek a konfigurálását az útmutató következő része szól. Addig is, ezt a szkriptet bármikor manuálisan is elindíthatod, mielőtt egy komolyabb rendszerfrissítésbe vagy konfiguráció-módosításba kezdenél.

Utolsó frissítés: 2026. június 28. 12:36