Egy rendszer biztonsági mentésének legegyszerűbb módja shell-parancsfájlok használata. Egy parancsfájllal például beállíthatók a használandó könyvtárak, és ezek átadhatók paraméterként a tar segédprogramnak, amely létrehoz egy archívumfájlt. Az archívumfájl másik helyre helyezhető vagy másolható át. Az archívum létrehozható távoli fájlrendszeren, például NFS csatoláson is.
A tar segédprogram egy archívumfájlt hoz létre több fájlból vagy könyvtárból. A tar képes az archívum méretének csökkentése érdekében a fájlok átküldésére egy tömörítő segédprogramon.
Az alábbi shell-parancsfájl a tar segítségével hoz létre egy archívumfájlt egy csatolt távoli NFS fájlrendszeren. Az archívumfájl neve további parancssori segédprogramok használatával kerül megállapításra.
#!/bin/sh #################################### # # NFS-csatolásra biztonsági mentést készítő parancsfájl. # #################################### # Mit kell menteni. backup_files="/home /var/spool/mail /etc /root /boot /opt" # Hová kell menteni. dest="/mnt/backup" # Archívumfájl nevének létrehozása. day=$(date +%A) hostname=$(hostname -s) archive_file="$hostname-$day.tgz" # Kezdési állapotüzenet kiírása. echo "$backup_files mentése ide: $dest/$archive_file" date echo # A fájlok mentése a tar segítségével. tar czf $dest/$archive_file $backup_files # Befejezési állapotüzenet kiírása. echo echo "A mentés kész" date # A fájlok részletes felsorolása a $dest könyvtárban a fájlméretek ellenőrzéséhez. ls -lh $dest
-
$backup_files: ez a változó felsorolja a menteni kívánt könyvtárakat. A listát igényeinek megfelelően szabja személyre.
-
$day: ez a változó tárolja a hét napjait. Ennek használatával a hét minden napjához létrejön egy archívumfájl, így hét napi archiválási előzménnyel fogunk rendelkezni. Ezt számos más módon is el lehet érni, beleértve a date segédprogram használatát.
-
$hostname: ez a változó a rendszer rövid gépnevét tárolja. A gépnév az archívum fájlnevében való használatával elérhető, hogy több rendszer napi archívumfájljai ugyanabba a könyvtárba kerülhessenek.
-
$archive_file: az archívumfájl teljes neve.
-
$dest: az archívumfájl célja. A könyvtárat a mentési parancsfájl végrehajtása előtt létre kell hozni és ebben az esetben csatolni is kell. Az NFS használatával kapcsolatos részletekért lásd a „Hálózati fájlrendszer (NFS)” szakaszt.
-
állapotüzenetek: a konzolra az echo segédprogrammal kiírt elhagyható üzenetek.
-
tar czf $dest/$archive_file $backup_files: az archívumfájl létrehozására használt tar parancs.
-
c: létrehozza az archívumot.
-
z: az archívumot tömöríti a gzip segédprogrammal.
-
f: archívumfájl használata. Enélkül a tar kimenete a szabványos kimenetre kerül elküldésre.
-
-
ls -lh $dest: ez az elhagyható utasítás hosszú (-l) és közérthető (-h) formátumban kiírja a célkönyvtár tartalmát. Ez az archívumfájl méretének gyors ellenőrzésére használható. Ez az ellenőrzés ugyanakkor nem helyettesíti az archívumfájl tesztelését.
Ez egy egyszerű példa biztonsági mentési parancsfájl. A biztonsági mentést készítő parancsfájl rengeteg beállítást tartalmazhat. A shell parancsfájlok írásával kapcsolatos mélyebb információkat tartalmazó erőforrásokat a „Hivatkozások” szakaszban találhat.
A fenti biztonsági mentést készítő parancsfájl végrehajtásának legegyszerűbb módja a tartalom beillesztése egy fájlba, és elmentése például backup.sh
néven. Ezután kiadható a következő parancs:
sudo bash backup.sh
Ezzel tesztelhető a parancsfájl megfelelő és elvárt módon való működése.
A cron segédprogram használatával automatizálható a parancsfájl végrehajtása. A cron démon lehetővé teszi a parancsfájlok vagy parancsok adott időben történő futtatását.
A cron a crontab
fájl bejegyzéseivel konfigurálható. A crontab
fájlok mezőkre vannak osztva:
# m h dom mon dow command
-
m: a parancs végrehajtásának perce, 0 és 59 között.
-
h: a parancs végrehajtásának órája, 0 és 23 között.
-
dom: a hónap napja, amikor a parancs végrehajtásra kerül.
-
mon: a parancs végrehajtásának hónapja 1 és 12 között.
-
dow: a hét napja, amikor a parancs végrehajtásra kerül, 0 és 7 között. A vasárnap megadható 0-ként és 7-ként is, mindkét érték érvényes.
-
command: a végrehajtandó parancs.
A crontab
fájl bejegyzéseinek hozzáadásához vagy módosításához használja a crontab -e parancsot. A crontab
fájl tartalma megjeleníthető a crontab -l parancs használatával.
A fenti backup.sh parancsfájl a cron segítségével történő végrehajtásához adja ki a következő parancsot:
sudo crontab -e
A crontab -e parancs sudo-val történő használata a root felhasználó crontab fájlját szerkeszti. Erre akkor van szükség, ha csak a root felhasználó által elérhető könyvtárakról is készít biztonsági mentést. |
Vegye fel a következő bejegyzést a crontab
fájlba:
# m h dom mon dow command 0 0 * * * bash /usr/local/bin/backup.sh
A backup.sh parancsfájl minden délben végrehajtásra kerül.
A bejegyzés megfelelő végrehajtása érdekében a backup.sh parancsfájlt át kell másolni a |
A crontab beállításaival kapcsolatos további, mélyebb információkért lásd a „Hivatkozások” szakaszt.
Az archívumot létrehozása után fontos tesztelni is. Az archívum tesztelhető az általa tartalmazott fájlok listáztatásával, de a legjobb teszt egy fájl visszaállítása az archívumból.
-
Az archívum tartalmának kiíratásához adja ki a következő parancsot:
tar -tzvf /mnt/backup/host-Monday.tgz
-
Az archívum egy fájljának visszaállításához egy másik könyvtárba:
tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts
A tar -C kapcsolója átirányítja a kibontott fájlokat a megadott könyvtárba. A fenti példa az
/etc/hosts
fájlt a/tmp/etc/hosts
helyre bontja ki. A tar újra létrehozza a fájlt tartalmazó könyvtárszerkezetet.Figyelje meg, hogy a helyreállítandó fájl útvonalának elejéről lemaradt a / jel.
-
Az archívum összes fájljának helyreállításához adja ki a következő parancsot:
cd / sudo tar -xzvf /mnt/backup/host-Monday.tgz
Ez felülírja a fájlrendszeren éppen megtalálható fájlokat. |
-
A shell-parancsfájlok írásával kapcsolatos további információkért lásd az Advanced Bash-Scripting Guide leírást.
-
A Teach Yourself Shell Programming in 24 Hours című könyv online elérhető, és remek információforrás a shell parancsfájlok írásához.
-
A CronHowto wikioldal a cron speciális lehetőségeivel kapcsolatos részleteket tartalmaz.
-
A tar további lehetőségeivel kapcsolatban lásd a GNU tar kézikönyvét.
-
A Wikipedia Backup Rotation Scheme cikke a további mentésforgatási sémákról tartalmaz információkat.
-
A parancsfájl a tar segédprogramot használja az archívum létrehozásához, de számos más parancssori segédprogram is használható, például: