17. Biztonsági mentések
 
Minden számítógépen nagyon fontos az adatok biztonsági mentésének megoldása. Különösen igaz ez kiszolgáló esetén. Ne feledjük, hogy mi folyamatos üzemre használunk egy átlagos személyi számítógépet, amit nem erre terveztek. Mechanikus alkatrészekre - és a merevlemez is ilyen - ez hatványozottan igaz.
Biztonsági mentéseket többféle módon készíthetünk. Időközönként CD-re, vagy DVD-re írhatjuk ki a fontos adatainkat, a belső hálózat egy másik gépére hálózati mentést készíthetünk, vagy használhatunk hordozható merevlemezeket is.
A valódi kiszolgálókban gyakran RAID (Redundant Array of Inexpensive Disks) megoldásokat alkalmaznak. Ilyenkor a
RAID vezérlő (vagy szoftveres RAID esetén egy program) adatainkat automatikusan több merevlemezen tárolja, és egy eszköz meghibásodása nem jár adatveszéssel. Viszont a RAID nem helyettesíti a biztonsági mentést. Alkalmazásával növelhetjük a kiszolgáló rendelkezésre állását, de a törölt állományok visszaállítását a RAID nem biztosítja.
A Linux operációs rendszer széleskörűen támogatja szoftveres RAID-et is. Telepítésnél választhatjuk ezt a megoldást, de ne feledjük, hogy a biztonsági mentést ilyenkor is meg kell oldani.
Ebben a fejezetben egy háromszintű metési megoldást mutatok be, melynek részei:
Az első és a második esetben a mentéseket a második merevlemezre hozzuk létre, amit már telepítésnél beüzemeltünk. A napi biztonsági mentések által visszatérhetünk a módosított konfigurációs állományok korábbi állapotaihoz. Az adatainkból, az összméretük miatt, csak az előző nap mentést tárolunk. Az operációs rendszer mentése tgz állományba lehetővé teszi a rendszer gyors visszaálítását a rendszerlemez meghibásodása esetén. A hálózati mentéssel mindkét merevlemez adatainak elvesztése esetén is visszaállítható a kiszolgáló.

    17.1. Merevlemezek állapotának lekérdezése

Mielőtt mentést készítenénk adatainkról a második merevlemezre, vizsgáljunk meg két programot amelyekkel ellenőrizhetjük a merevlemezek állapotát. A mentést ugyanis csak akkor hajtjuk végre ha mindkét merevlemez állapota kifogástalan.
Az utóbbi években a merevlemezek kapacitása jelentősen növekedett, amit a megbízhatóságukról sajnos nem mondhatunk el. Az eszközök vásárlásánál azokat a típusokat részesítsük előnyben, amelyekre legalább három, de inkább öt, év garanciát ad a gyártó. A bemutatott rendszeren két azonos típusú merevlemezt használtam, de a kiszolgálóba jobb különböző márkájuakat beépíteni. Így kisebb a valószínűsége, hogy a két eszköz egyszerre hibásodik meg.
Az első program, amit a megvizsgálunk, a smartctl. Ez az eszközök SMART (Self-Monitoring, Analysis and Reporting Technology) értékeit jeleníti meg a képernyőn. A
parancsot -H paraméterrel kiadva az eszköz általános állapotát kérdezhetjük le:
 
[root@centos5 ~]# smartctl -H /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

[root@centos5 ~]# smartctl -H /dev/sdb
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
 
Minden SMART értéket a -a paraméterrel jeleníthetünk meg. A merevlemez hőmérsékletét a 194-el kezdődő sor mutatja:
 
[root@centos5 ~]# smartctl -a /dev/sda | grep ^194
194 Temperature_Celsius     0x0002   166   166   000    Old_age   Always       -       36 (Lifetime Min/Max 23/39)
[root@centos5 ~]# smartctl -a /dev/sdb | grep ^194
194 Temperature_Celsius     0x0002   171   171   000    Old_age   Always       -       35 (Lifetime Min/Max 23/39)
 
Mindkét eszköz hőmérsékletét lekérdeztük. A 36 és 35 fok Celsius értékek megfelelőnek mondhatók, tartósan 40 fölötti értékeknél építsünk ventilátorokat az eszközök hűtése érdekében.
A másik program, amit használni fogunk a Hard Disk Sentinel LINUX (FREE). A http://hdsentinel.com/ oldalról töltsük le a program legfrissebb változatát (17.1. ábra).
 
hdsentinel
17.1. ábra
 
Csomagoljuk ki a saját könyvtárunkba, majd root-ként hozzuk létre a /root/hdsentinel/ könyvtárat és helyezzük a HDsentinel fájlt ebbe a könyvtárba. Adjunk futási jogot a programnak és indítsuk el:
 
[root@centos5 ~]# mkdir /root/hdsentinel/
...
[root@centos5 ~]# chmod 770 /root/hdsentinel/HDSentinel
[root@centos5 ~]# /root/hdsentinel/HDSentinel
Hard Disk Sentinel for LINUX console 0.03 (c) 2008-2009 info@hdsentinel.com
Start with -r [reportfile] to save data to report, -h for help

Examining hard disk configuration ...

HDD Device  0: /dev/sda
HDD Model ID : Hitachi HDT721032SLA360
HDD Serial No: STH207MT23SR2S
HDD Revision : ST2OA3AA
HDD Size     : 305245 MB
Interface    : S-ATA II
Temperature  : 36 °C
Health       : 100 %
Performance  : 100 %
Power on time: 9 days, 10 hours
Est. lifetime: more than 1000 days

HDD Device  1: /dev/sdb
HDD Model ID : Hitachi HDT721032SLA360
HDD Serial No: STH207MT22JGDS
HDD Revision : ST2OA3AA
HDD Size     : 305245 MB
Interface    : S-ATA II
Temperature  : 35 °C
Health       : 100 %
Performance  : 100 %
Power on time: 9 days, 16 hours
Est. lifetime: more than 1000 days

 
Látjuk, hogy a program részletes információkat közöl mindkét merevlemezről: több mint 9 napja működnek az eszközök, és a várható élettartam 1000 napnál is több. Számunkra leginkább a "Health" kezdetű sorok fontosak.
A programot -r paraméterrel indítva szöveges állományba menti a fentinél részletesebb merevlemez jellemzőket.
 

 
    17.2. Rendszerfájlok mentése, adattükrök

Nagyon hasznos, ha a rendszerünk bizonyos időközönként mentést készít a felhasználói azonosítókról, jelszavakról és az általunk módosított konfigurációs állományokról. A backup_napi.scp program, egyebek mellett, ezt valósítja meg. A megadott fájlokat tgz állományba gyűjti és olyan néven menti, ami az aktuális dátumot is tartalmazza. Mivel a fájl mérete nem több húsz kilobájnál, akár napi mentéseket is készíthetünk.
A program létrehoz a /root/backup könyvtárban egy könyvtárstruktúrát: év / hónap / nap. Első indításkor létrehozza a /root/backup könyvtárat is. A tgz állomány nevét a következő parancs kimenete határozza meg:
 
[root@centos5 ~]# date +'%Y_%m_%d'
2010_04_24
 
A backup_napi.scp szkript a HDSentinel programmal ellenőrzi a merevlemezek állapotát. Jelentésfájlt is létrehoz rep_tmp.txt néven. Hibátlan lemezek esetén az alábbihoz hasonló részlet kétszer is szerepelni fog a jelentésfájlban:
 
  -- Physical Disk Information - Disk: #1: Hitachi HDT721032SLA360 --

    Hard Disk Summary
    -----------------
    Hard Disk Number. . . . . . . . . . . . . . . . .  1
    Hard Disk Device. . . . . . . . . . . . . . . . .  /dev/sdb
    Interface . . . . . . . . . . . . . . . . . . . .  S-ATA II
    Hard Disk Model ID. . . . . . . . . . . . . . . .  Hitachi HDT721032SLA360
    Hard Disk Revision. . . . . . . . . . . . . . . .  ST2OA3AA
    Hard Disk Serial Number . . . . . . . . . . . . .  STH207MT22JGDS
    Hard Disk Total Size. . . . . . . . . . . . . . .  305245 MB
    Current Temperature . . . . . . . . . . . . . . .  35 ºC (95 
ºF)
    Power On Time . . . . . . . . . . . . . . . . . .  10 days, 1 hours
    Estimated Remaining Lifetime. . . . . . . . . . .  more than 1000 days
    Health. . . . . . . . . . . . . . . . . . . . . .  #################### 100 % (Excellent)
    Performance . . . . . . . . . . . . . . . . . . .  #################### 100 % (Excellent)

    The hard disk status is PERFECT. Problematic or weak sectors not found and there are no spin up or data transfer errors.
      No actions needed.


Azokat a sorokat, amelyekben szerepel az "Excellent" szó a program kigyűjti a jelentésfájlból és rep_4e.txt néven elmenti. Amennyiben az állomány sorainak a száma négy (vagyis mindkét merevlemez állapota kiváló) elkészíti a fentebb említett tgz állományt és öt könyvtár tükörképét a második merevlemezre az rsync pranaccsal. Ezek a könyvtárak a következők: /home, /root, /megoszt, /var/lib/squidguard és /var/www/html. A /home és a /megoszt könyvtárakból kihagyja a lost+found könyvtárat.
Négytől eltérő sorszám esetén (vagyis ha valamelyik merevlemezen hibák jelennének meg) a program nem készít mentést, hanem a HDSentinel jelentésfájljának tartalmával e-mailt küld a root-nak. Az e-mail tárgya HIBA_a_merevlemezen lesz. A jelentésfájlt
átmásolja a /root/hdsentinel könyvtárba is. A fájl névben az aktuális dátum is szerepel majd.

A programban az első rsync parancs a /home könyvtár tartalmáról teljes másolatot készít a /homemr könyvtárba (kihagyva lost+found könyvtárat). Ismételten elindítva összehasonlítja a két könyvtár tartalmát, és már csak az új fájlokat másolja, valamint azokat írja felül a második könyvtárban, amelyek az elsőben módosultak. Az első könyvtárból eltávolított állományokat a másodikból is törli. Tehát a parancs gyorsan kialakítja az első könyvtár pontos tükörképét. Ezért nem is tekinthető valódi biztonsági mentésnek, de a legtöbb iskola lehetőségeit és eszközparkját figyelembe véve ez az a megoldás, ami még megvalósítható.
A /root, /mentesek, /var/www/html és /val/lib/squidguar könyvtárakkal hasonlóan jár el.
Ezzel a módszerrel lehetőség nyílik arra is, hogy a felhasználók által a HOME könyvtárból a nap folyamán véletlenül letörölt állományokat visszaállítsuk. Hívjuk fel a felhasználók figyelmét, hogy minden éjjel készül biztonsági másolat a HOME könyvtárukról, és a rendszergazda vissza tudja másolni az adott napon törölt állományokat.
 
Az 
backup_napi.scp program:

#!/bin/bash
EV=`date +'%Y'`
HO=`date +'%m'`
NAP=`date +'%d'`
DATE=`date +'%Y_%m_%d'`
/root/hdsentinel/HDSentinel -r /root/hdsentinel/rep_tmp.txt > /dev/null
cat /root/hdsentinel/rep_tmp.txt | grep -w Excellent > /root/hdsentinel/rep_4e.txt
XCE=`wc -l /root/hdsentinel/rep_4e.txt | cut -d" " -f1`
 if test $XCE -eq 4
  then
if test ! -d /root/backup/$EV/$HO/$NAP
then
mkdir -p /root/backup/$EV/$HO/$NAP
fi
# Konfiguraciós allomanyok és rendszerfájlok napi mentése
tar cpzf /root/backup/$EV/$HO/$NAP/"$DATE"_backup.tgz /etc/squid/squidguard.conf \
/etc/squid/squid.conf /etc/squid/nojelszo.txt /etc/squid/csoportok /etc/snmp/snmpd.conf \
/etc/httpd/conf.d/mrtg.conf /etc/httpd/conf.d/sarg.conf \
/etc/httpd/conf.d/ke.conf /etc/dhcpd.conf /root/tuzfal.scp /etc/rc.d/rc.local \
/etc/samba/smb.conf /etc/samba/passdb.tdb /etc/samba/secrets.tdb \
/etc/dnsmasq.conf /etc/passwd /etc/shadow /etc/gshadow /root/felhasznalok.txt
# Minden quota információt fájlba
/usr/sbin/repquota -a > /root/backup/$EV/$HO/$NAP/"$DATE"_quota.txt
# Adatok mentese:
rsync -agE --delete --exclude="lost+found" /home/ /homemr
    #
    if test ! -d /mentesek/megoszt
    then
    mkdir /mentesek/megoszt
    fi
rsync -agE --delete --exclude="lost+found" /megoszt/ /mentesek/megoszt
    #
    if test ! -d /mentesek/root
    then
    mkdir /mentesek/root
    fi
rsync -agE --delete /root/ /mentesek/root
    #
    if test ! -d /mentesek/html
    then
    mkdir /mentesek/html
    fi
rsync -agE --delete /var/www/html/ /mentesek/html
    #
    if test ! -d /mentesek/squidg
    then
    mkdir /mentesek/squidg
    fi
rsync -agE --delete /var/lib/squidguard/ /mentesek/squidg
 else
 cp /root/hdsentinel/rep_tmp.txt /root/hdsentinel/rep_$DATE.txt
 mail -s HIBA_a_merevlemezen root < /root/hdsentinel/rep_$DATE.txt
fi
 
A programmal megoldottuk, hogy adataink két merevlemezen is tárolódnak. Ezzel bármelyik meghibásodása esetén néhány óra alatt újra üzembe tudjuk állítani a kiszolgálót. A következő fejezetben tárgyaljuk a rendszer visszaállításának menetét a merevlemezek cseréjekor.
Ne gondoljuk azonban, hogy adataink 100%-ban biztonságban vannak. Például a tápegység bizonyos hibája, szerencsétlen esetben, tönkreteheti mindkét merevlemezt. Ezért is elsődleges fontosságú jó minőségű, lehetőleg márkás, tápegység használata a kiszolgálóban. Ügyelni kell a szerver fizikai biztonságára is. Lopás vagy rongálás esetén minden adatunk elveszhet.



    17.3. Időzített mentés
 
Ahhoz, hogy az backup_napi.scp program automatikusan minden nap elinduljon és elkészítse a mentéseket a /etc/cron.d könyvtárban létrehozunk egy ment_nap nevű állományt a következő tartalommal: 14 01 * * * root /root/userment.scp
A következő parancs root-ként kiadva létrehozza az adott fájlt:
 
[root@centos5 ~]# echo "14 01 * * * root /root/backup_napi.scp" > /etc/cron.d/ment_nap
 
Ebben az esetben minden nap 1:14-kor lefut az backup_napi.scp nevű program. Az időzítést megváltoztathatjuk az első öt szóközzel elválasztott mező módosításával. Jelentésük sorrendben a következő:
 
 •   perc, 0 - 59
 •   óra, 0 - 23
 •   hónap napja
 •   hónap, 1 -12
 •   a hét napja, 0 - 6, 0 a vasárnapot jelenti
 
Amennyiben a kiszolgálót a munkanap végén leállítjuk, a metést ütemezzük a délutáni időszakra.
 
 
    17.4. Az operációs rendszer mentése
 
A teljes operációs rendszerünkről is készíthetünk mentést tgz formátumban. A napi mentésben is megtalálható adatainkat és néhány speciális könyvtárat kihagyunk ebből a mentésből. Mivel adatainkat nem tartalmazza ez a mentés, mérete 2 Gigabájtnál általában nem nagyobb. Ebből a tgz fájlból visszaállítható a rendszerünk teljes funkcionalitásban. A mentést készítő backup_os.scp szkriptet heti rendszerességgel fogjuk futtatni. A szkript létrehozza a /root/hetilog könyvtárat, majd ellenőrzi, hogy három hete (21 nappal ezetőtt) készült-e mentés. Amennyiben létezik mentés ilyen dátummal, törli azt. Ezután a HDsentinel programmal ellenőrzi a merevlemezek állapotát és elkészíti a mentést. A mentést /mentesek künyvtárba backup_"$DATE".tgz néven hozza létre, ahol a DATE változó értéke az aktuális dátum.
 
backup_os.scp szkript:

 
#!/bin/bash
DATE=`date +'%Y_%m_%d'`
 if test ! -d /root/hetilog
 then
 mkdir /root/hetilog
 fi
#Toroljuk a 3 hetes mentest
B3=`date +'%Y_%m_%d' --date='21 days ago'`
if test -f /mentesek/backup_"$B3".tgz
then
rm -f /mentesek/backup_"$B3".tgz
echo "Törlöm a backup_$B3.tgz fájlt" > /root/hetilog/"$DATE".log
fi
#Ellenorizzuk, hogy a ket hdd jo:
  /root/hdsentinel/HDSentinel -r /root/hetilog/"$DATE"_rep.txt > /dev/null
  cat /root/hetilog/"$DATE"_rep.txt | grep -w Excellent > /root/hetilog/heti_4o.txt
  XCE=`wc -l /root/hetilog/heti_4o.txt | cut -d" " -f1`
  if test $XCE -eq 4
  then
# echo indul a mentes ...
tar cpzf /mentesek/backup_"$DATE".tgz --exclude=/proc --exclude=/sys --exclude=/lost+found \
--exclude=/mnt --exclude=/var/spool/squid --exclude=/megoszt --exclude=/mentesek \
--exclude=/homemr --exclude=/tmp --exclude=/var/named --exclude=/var/spool/postfix \
--exclude=/dev --exclude=/media --exclude=/var/run --exclude=/home / >> /root/hetilog/"$DATE".log
  else
  cp /root/hetilog/"$DATE"_rep.txt /root/hetilog/hiba_$DATE.txt
  mail -s NEM_keszult_os_mentes_HDD_HIBA root < /root/hetilog/hiba_$DATE.txt
  fi

 
Hozzuk létre a heti_os nevű állományt az /etc/cron.d könyvtárban. A mentést munkaidő utánra időzítsük. Azalábbi parancs eredményekeént a mentés minden szombaton 2 óra 7 perckor indul:
 
[root@centos5 ~]# echo "07 2 * * 6 root /root/backup_os.scp" > /etc/cron.d/heti_os
   


    17.5. Hálózati mentés

Említettük, hogy nem szerencsés ha az adataink és azok biztonsági másolata ugyanazon a gépen találhatók. Hálózatunk egy másik gépén is létrehozva a biztonsági mentést időközönként (pl. hetente), a mentésből vissza tudjuk állítani az előző heti állapotot. Amennyiben nincs lehetőségünk hálózati mentés megvalósítására, a /root/backup könyvtárról készítsünk mentést valamilyen adathordozóra. Tartsuk a mentést biztonságos helyen, hiszen a felhasználók jelszavait is tartalmazza.
Ebben a fejezetben megvalósítjuk a biztonsági mentését a belső hálózatunk egy másik gépére. Akkor használhatjuk ezt a megoldást, ha van egy szabad tárhellyel rendelkező, Linux operációs rendszert futtató gépünk.
Használhatunk erre célra egy
munkaállomást is. A 16. fejezetben leirtak alapján beállított Ubuntu Linux is megfelel erre a célra. Ne feledjük azonban, hogy ettől kezdve azt a gépet is meg kell védenünk a jogosulatlan hozzáféréstől. (A BIOS-ban állítsuk be, hogy csak merevlemezről boot-oljon, jelszót is kapcsoljunk be BIOS-ba való belépéshez. Oldjuk meg, hogy a gépet ne lehessen szétszedni, elvinni, stb.)
Hozzunk létre egy felhasználót a gépen és telepítsük az OpenSSH szervert. Jelentkezzünk be a kiszolgálóról erre a gépre:
 
[root@centos5 ~]# ssh palferi@192.168.55.172
The authenticity of host '192.168.55.172 (192.168.55.172)' can't be established.
RSA key fingerprint is e6:93:27:21:d6:dc:44:37:1e:5c:d6:5a:29:07:45:00.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.55.172' (RSA) to the list of known hosts.
palferi@192.168.55.172's password:
Linux hpm 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

Last login: Tue Dec  8 19:07:04 2009
palferi@hpm:~$
 
Bejelentkeztünk a 192.168.55.172 IP című gépre palferi felhasználóként. Ennek a felhasználónak a jelszavát ne tudja rajtunk kívül más, hiszen a biztonsági mentés személyes adatokat tartalmaz. A jogosultságok módosításával oldjuk meg, hogy más felhasználó ne férjen hozzá a mentéshez. Hozzuk létre ezen a gépen a következő könyvtárakat (természetesen más felhasználói nevet írva az elérési útba), és jelentkezzünk ki:
 
palferi@hpm:~$ mkdir /home/palferi/mentc5
palferi@hpm:~$ mkdir /home/palferi/mentc5/homemr
palferi@hpm:~$ mkdir /home/palferi/mentc5/mentesek
palferi@hpm:~$ exit
[root@centos5 ~]#

A kiszolgálón kiadott következő két paranccsal készítsünk másolatot a /homemr és /mentések könyvtárak tartalmairól:
 
[root@centos5 ~]# rsync -ave ssh --delete --exclude="lost+found" /homemr/ palferi@192.168.55.172:/home/palferi/mentc5/homemr
[root@centos5 ~]# rsync -ave ssh --delete --exclude="lost+found" --exclude="backup*.tgz" /mentesek/ palferi@192.168.55.172:/home/palferi/mentc5/mentesek
 
Mindkét esetben meg kell adnunk a felhasználó jelszavát.

A teljes operációs rendszerről készült mentést is átmásolhatjuk a munkaállomásra. Az alábbi parancs a 2010.05.28.-án készült mentést másolja a munkaállomás /home/palferi/mentc5 könyvtárába backup.tgz néven:
 
[root@centos5 ~]# rsync -ave ssh --delete /mentesek/backup_2010_05_28.tgz palferi@192.168.55.172:/home/palferi/mentc5/backup.tgz
 
 
 
    17.6. Időzített hálózati mentés

Az időzített hálózati mentés megvalósításához meg kell oldani, hogy jelszó nélkül is kiépíthessük az ssh kapcsolatot a kiszolgáló és az említett gép között.
Lépjünk a kiszolgálón a /root/.ssh könyvtárba és az alábbi paranccsal generáljunk ssh kulcsot. A megjelenő soroknál ne írjunk be semmit, csak üssünk Entert.
 
[root@centos5 ~]# cd .ssh
[root@centos5 .ssh]# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
bc:b7:15:9c:96:a2:74:2d:4c:11:9d:ce:95:02:a1:37 root@centos5.suli.uz.ua

 
Az scp paranccsal a kiszolgálóról másoljuk a másik gépre az id_dsa.pub fájlt:
 
[root@centos5 .ssh]# scp id_dsa.pub palferi@192.168.55.172:/home/palferi
palferi@192.168.55.172's password:
id_dsa.pub                                    100%  613     0.6KB/s   00:00

 
A 192.168.55.172 IP című gépen hozzuk létre a /home/palferi/.ssh/authorized_keys2 állományt az id_dsa.pub tartalmával. Módosítsuk a jogosultságát az állománynak és töröljük az id_dsa.pub fájlt:
 
palferi@hpm:~$ cat /home/palferi/id_dsa.pub >> /home/palferi/.ssh/authorized_keys2
palferi@hpm:~$ chmod 600 /home/palferi/.ssh/authorized_keys2
palferi@hpm:~$ rm /home/palferi/id_dsa.pub

 
(A .ssh könyvtár automatikusan létrejon, ha az adott gépről kezdeményezünk ssh kapcsolatot. Jelentkezünk be a kiszolgálóra a 192.168.55.172 IP című gépről: ssh 192.168.55.1)
Jelentkezzünk be a kiszolgálóról erre a gépre:
 
[root@centos5 ~]# ssh palferi@192.168.55.172
Linux hpm 2.6.31-21-generic #59-Ubuntu SMP Wed Mar 24 07:28:56 UTC 2010 i686

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

Last login: Thu Apr 29 21:31:52 2010 from suliserver
palferi@hpm:~$

 
Amennyiben nem hibáztunk a fenti parancsok beírásánál jelszó megadása nélkül be tudunk jelentkezni. Az előző fejezetben használt rsync parancsok sem kérnek jelszót. Így már létrehozhatunk egy egyszerű programot a mentéshez, aminek a végrehajtását időzíthetjük.
Az alábbi szkriptet hozzuk létre a kiszolgáló root könyvtárában
backup_net.scp néven.
 
#!/bin/bash
PIP=192.168.55.172
U1=palferi
DATE=`date +'%Y_%m_%d'`
echo "A $PIP IP cimu gep NEM elerheto" > /root/hetilog/nemelerheto.txt
 if test ! -d /root/hetilog
 then
 mkdir /root/hetilog
 fi
# Ellenorizzuk, hogy a gep elerheto:
ping -c 4 $PIP | grep ttl > /root/hetilog/ping.tmp
PSOR=`wc -l /root/hetilog/ping.tmp | cut -d" " -f1`
 if test $PSOR -lt 4
 then
 mail -s NEM_keszult_net_mentes root < /root/hetilog/nemelerheto.txt
  else
  /root/hdsentinel/HDSentinel -r /root/hdsentinel/hetin_tmp.txt > /dev/null
  cat /root/hdsentinel/hetin_tmp.txt | grep -w Excellent > /root/hdsentinel/hetin_4e.txt
  XCE=`wc -l /root/hdsentinel/hetin_4e.txt | cut -d" " -f1`
  if test $XCE -eq 4
  then
  
rsync -ave ssh --delete --exclude="lost+found" /homemr/ $U1@$PIP:/home/$U1/mentc5/homemr > /root/hetilog/net_"$DATE.log"
  
rsync -ave ssh --delete --exclude="lost+found" --exclude="backup*.tgz" /mentesek/ $U1@$PIP:/home/$U1/mentc5/mentesek >> /root/hetilog/net_"$DATE.log"
  rsync -ave ssh --delete /mentesek/backup_"$DATE".tgz $U1@$PIP:/home/$U1/mentc5/backup.tgz >> /root/hetilog/net_"$DATE.log"
  else
  cp /root/hdsentinel/hetin_tmp.txt /root/hetilog/hetin_$DATE.txt
  mail -s NEM_keszult_net_mentes_HDD_HIBA root < /root/hetilog/hetin_$DATE.txt
  fi
 fi


A program az ebőbbi programokhoz hasonlóan megvizsgálja a merevlemezek állapotát, de előtte négy icmp csomaggal (ping parancs) ellenőrzi, hogy a gép elérhető-e. Csak akkor készít biztonsági mentést, ha a kapcsolat él és a merevlemezek állapota kifogástalan. Ha valamelyik feltétel nem teljesül, figyelmeztető e-mail küld a root-nak.
A második sorban módosítsuk a PIP változó értékét annak a gépnek az IP címére, amelyikre a hálózati mentést készítjük. A harmadik sorban az U1 változó értékét is módosítsuk arra a felhasználói névre, akinek a home könytárába kerülnek a mentések.

Hozzuk létre a hment_net nevű állományt az /etc/cron.d könyvtárban. A mentést úgy időzítsük, hogy indulása az operációs rendszer mentése után kb 1 órával, de még ugyanazon a napon történjen. Az alábbi parancs minden szombaton, 3 óra 7 perckor indítja a mentést, ami folyamatos üzem esetén:
 
[root@centos5 ~]# echo "07 03 * * 6 root /root/backup_net.scp" > /etc/cron.d/hment_net
 
Amennyiben a hét másik napján, vagy más időpontban akarjuk a hálózati mentést indítani, módosítsuk az értékeket. Módosítás esetén vegyük figyelembe, hogy a hálózati mentésnek ugyanazon a napon kell indúlnia, mint az operációs rendszer mentésének, és annak befejeződése után.
 
Abban az esetben, ha a HDSentinel program későbbi verziói nem az "
Excellent" szót tartalmaznák a 100%-os teljesítmény és kondícó esetén, módosítsuk a programok adott sorait a jelentésfájl alapján.