Rsync komplett mentés

 ( mkcom | 2018. szeptember 28., péntek - 15:33 )

Üdv !

Komplett mentést szeretnék localhostba elvégezni rsync segítségével az alábbi parancssor szerint:
rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /DST fold.

Problémám akadt hogy 3gb komplett rendszerről a mentés több mint 30gb tárhelyet emésztett fel,viszont duplikált fájlok és könyvtárak nem találtam.

Köszönöm a segítséget.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nincs esetleg felmountolva valami?
Én anno szívtam ilyet binmounttal... :)

---
"A megoldásra kell koncentrálni nem a problémára."

-x kapcsoló hiányzik. Ha használná, nem kellene
--exclude={"/run/*","/mnt/*","/media/*"}

Én mondjuk nem mentenék futó rendszert, de persze mindenki azt csinál, amit akar.

az x kapcsoloval az a gond, hogyha a var vagy usr vagy home masik particion van akkor az nem mentene...

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Mondjuk én úgy csináltam, hogy nem a / volt megadva, hanem felsorolva azok a könyvtárak, amiket menteni akartam.

Volt olyan shell scriptem, ami egymás után 3-4 különbözőképp felparaméterezett rsync-et futtatott.

Ha esetleg a -x /usr /home /masvalami nem működne, akkor szétszedném több parancsra.

Az "-x" csak akkor jó, ha amúgy windows-osan minden a / alatt van; illendő módon telepített OS esetén legalább a /home meg a /var külön fs.

Favago modszer, de "du -hs *"-al vegignezni, hogy mi mennyit foglal, es osszehasonlitani az eredetivel?


Sic Transit Gloria Mundi

Tehát a / alól mindent másolnál a /DST alá, kivéve egy csomó dolgot. Nézd meg jobban, hogy mit _nem_ akarsz a / alól a /DST alá odamásolni, és szerintem rá fogsz jönni :-P

SZVSZ a probléma forrása valami rekurzív linkelés lesz.

pl.: /valami -> /

akaár az is lehet felmountoltad a cél hdd-t, de ígíy saját magát is menteni akarja ami végtelen ciklus lesz

Ilyen csodára nekem akkor sikerült ráfutnom, amikor egy "lyukas" fájlt sikerül rsync-elni. A file az ls szerint 80GB fölött harapott, a du alapján viszont a könyvtár méret, ahol lakott, csupán néhány megabájt volt. Tán a --sparse avagy röviden -S opció kezeli jól ezt a trükköt - a bevetése után az átmásolt >80GB file a lemezről ténylegesen csupán 3-4MB-t foglalt.

+1

Épp írni akartam, hogy hiányolom a -H és -S kapcsolókat. Nekem ez a szokásom:

rsync -avHASX


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Köszi urak tippeket, megválaszolom magamnak. A problémát az okozta hogy a dst mappába komplett mentés került, duplám került mentésre ugyan az a mappa. Ergo /C/C :-).
Esetleg valaki tudna egy jó megoldást folyamatos rsync alatt ne 100% cpu terhelés legyen ?

Ha USB-re csinálod a mentést, akkor elképzelhető, hogy a megszakításkezelés eszi a gépet. Ekkor az rsync "--bwlimit=KBPS" opciója segíthet - emlékeim szerint lokálisan is működik -, ahol megadhatod, hogy max. milyen sávszélességgel dolgozzon.

A másik megoldás, hogy a már futó rsync-et renice-olod (vagy eleve nice-al indítod), így valószínűleg továbbra is 100%-on lesz a CPU, de ha van valami számodra fontosabb taszk, akkor azt veszi előrébb az ütemező, az rsync ilyenkor kevesebb erőforrást kap.

Ha pedig valojaban nem is a 100%-os CPU load a baj, hanem a sok IO miatti belassulas, akkor a nice helyett/mellett mehet az ionice is.

A 100 % CPU terhelés miért baj? Ebbe nem kell sleep, nem zárt ciklusban vár valamire, hanem tudja csinálni folyamatosan. Ha van másik CPU-igényes process, osztozni fognak a futásidőn. Egy mag esetén akkor mindketten 50 %-ot esznek, egy harmadik falánk process megjelenésekor mindhárman 33 %-ot. Egy ideális világban. :)


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Cron beállítás éjjelre és probléma megoldva. :-). Olyan elképzelésen gondolkodtam hogy folyamatos sync rendszer és tükör között. Csak hw limit miatt nem jó.

Ez backup? Nézted az rdiff-backup nevű eszközt? Én ezt használom, bár írtam fölé egy shell scriptet.

http://www.nongnu.org/rdiff-backup/index.html


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

nice
ionice

---
"A megoldásra kell koncentrálni nem a problémára."

szábszkrájb

én fel szoktam mountolni a root-ot még egyszer pl. a /mnt/root-ba. s akkor nem kell exclude (/dev, /proc, stb), nincs probléma, ha fel van valami egyéb mountolva. egyszóval: az megy a rsyncen, ami a partíción van, nem több.

és a visszaállítással sincs gond ( nem kell minimális /dev folder, stb. )

Erre való az x kapcsoló.
rsync -vax / root@host:/backup/
és akkor a teljes gyökeret lementi mountolt mappák nélkül. Értelemszerűen kihagyja a dev, sys, proc könyvtárak tartalmát is.
-x, --one-file-system don't cross filesystem boundaries

Megkihagyja az illendően másik fs-ként kezelt home-ot is... :-P Pont a / az, amit nem igazán érdemes mindenestől menteni - kell egy csomaglista (rpm-ül: :-) yum-debug-dump kimenete), kell egz /etc mentés, és ennyi. Meg persze a /home /var, /opt (meg ami még egyedi dolgokat tartalmaz) az illendően külön rakva.

Ebben nem értünk egyet.
Desktopon semmi értelmét nem látom, a /home, /var/, /opt /stb. külön partícióra rakásának (kivéve az adatokat lásd később). Pláne ha 1 db HDD-n van a gépben. Mit nyerek vele? Hogy megtöbbszörözöm az esélyét, hogy elfogyjon a hely? El tudom fogadni, hogy vannak esetek, amikor célszerű, de egy laptopon szerintem felesleges.

Alapvetően én 2 mentést különítek el.
- rendszermentés
- adatmentés
Ezek eltérő megközelítést igényelnek a mentés formájában és rendszerességében.

1. Rendszermentés:
A rendszermentés nálam minden, ami a rendszer működéséhez kell -> programok, a hozzájuk tartozó beállításokkal. Ebbe a /home is beletartozik! Többek között ezért tárolom külön partíción az adatokat. Ilyet az ember ritkán csinál. Futó rendszerről én soha. A cél -> nem induló rendszer esetén visszaállni egy korábbi működőképes változatra.
Erre tar parancsot használom. Vagyis inkább használtam. Elég jó vagyok az újratelepítésben. Majdnem tovább tart visszaállítani mint újratelepíteni. Ezért nálam veszített a jelentőségéből.
2. Adatmentés:
Igazából itt is 2 típus van. Attól függ, hogy az adat(fájl) szerkesztve lesz-e még a jövőben. Pl: nyaralási fénykép már nem, készülő szakdolgozat igen.
a, a nem/kevéssé változó adatnál biztonsági mentést csinálok - adatmennyiségtől függően ezt lehet csinálni rsync-kel vagy akár sima mentéssel is.
b, változó adatnál, ahol esetleg a verziók is számítanak én a felhőt használom. A dropbox kezel verziókat, amire nekem kell arra elég.

Biztos mindenkinek megvan a saját módszere. Szerintem az enyém logikus. Nekem bevált.
c, telepítés/újratelepítés előtt szoktam néhány beállítást menteni. Ez jelenleg csak a .mozilla, meg a Clementine beállítása. A többire nincs szükségem. Volt már, hogy lementettem a /home .mappáit, de ezt csak kivételes esetben.

"Mit nyerek vele? Hogy megtöbbszörözöm az esélyét, hogy elfogyjon a hely?" - Hint: LVM jól használva. (egy pv/vg, több lv, akár úgy, hogy a telepítéskor nem osztod ki a vg teljes területét)

Meg azt is nyered vele, hogy egy újratelepítés/más disztribre váltás során, némi odafigyeléssel az adataid ott maradnak, ahol vannak :-P

Mentésnél az a lényeges, hogy hogyan tervezed a visszaállítást? bare metal és minden huss vissza, vagy telepítés és a beállítások/alkalmazások visszapakolása. Én RHEL/CentOS vonalon a második verziót használom: alapesetben a /etc mentése és a yum-debug-dump kimenete elég egy csomag- és alapbeállítások szintjén azonos rendszer felépítéséhez. Ezen felül mentésre kerülnek az adatok (/home, /opt, /srv, illetve a /var alatti dolgok egy része (pl. /var/lib/mysql...), ami nem az OS telepítésekor kerül a helyére, illetve nem az OS működse során jön létre. Ezeket vagy direktben fájlszinten, vagy Db-mentésből rakom vissza.

Mint mondtam el tudom fogadni, ha valaki máshogy csinálja.

1. Az LVM nekem felesleges. A partíciók méretével legközelebb gépváltáskor akarok foglalkozni. Cserébe az LVM (pláne ha több HDD-ből csinálnék egy lemezt) gondot okozhat adatmentéskor.
2. Az adataim köszönik szépen jól érzik magukat egy külön /mnt/Data partíción. Pláne hogy ez külön HDD. Csak linkelni szoktam a Dokumentumokat, Képeket stb-t a /home-ba.

Ezek helyett én inkább lementeném a teljes /-t, és utána frissítenék. Bár tény, hogy mivel az utóbbi években eléggé meghíztak a Linuxok, ezért a teljes rendszermentés kezd túl sok helyet foglalni.
3. Mint mondtam a beállítások jó része engem nem érdekel. Nem szoktam agyonkonfigurálni a rendszert, amit igen, azt kb. tudom fejből, vagy van rá webes linkem. A beállítások visszatöltésével a hibákat is visszatölteném, vagy olyan beállításokat, amik már nem kellenek. Így nekem nincs szükségem a /home- mentésére. Újratelepítéskor le szoktam menteni. Egyfajta mankónak használom. Megértem, ha te ezt másképp csinálod. A telepített csomagok visszaállítása még érdekelne is. Ubuntu-n tudtam is hogy kell csinálni, de Manjaron nem tudom.
4. /etc-ből nekem csak az fstab kell. Arról van mentésem. De a telepítéskor többnyire sikerül beállítani a csatolásokat. Így igazából nincs is rá szükség.
5. /opt-ba csak telepítek. Azt a 3-4 programot inkább újratelepítem.
6. /var mentésre eddig még nem volt szükségem. Igaz nem használok mysql-t.
7. /srv-ről meg azt se tudom micsoda! Eddig még nem hiányzott, hogy mentsem.

AZ lvm gondot okozhat adatmentéskor - mert miért is? Ha van hely a vg-ben, egy jól irányzott snapshot (némi illendő körítéssel), és mentheted az élő rendszeredet, adatbázisodat - konzisztensen.

A /etc-ből hosts, passwd, shadow, group, gshadow, sudoers... soroljam még, mi az, amit minimum célszerű visszahozni egy újratelepítésnél? Oké, a passwd/shadow/group/gshadow-ból csak a normál felhasználók, illetve a helyi technikai userek kellenek, de azok általában nagyon - uid/gid szintjén, hogy a régi állományaikat/dolgaikat elérhessék, mint annakelőtte. Az fstab pont olyan, amire nincs szükség, legfeljebb ha van néhány kacifántos cifs mountod, de akkor kell mellé a megfelelő credential fájl is (merthogy samba-s jelszót nem írunk az fstabba...).
A /var alatt azért akadhat néhány olyan dolog (gondolok itt teszreszabott cron fájlokra, mailboxokra, ilyesmire...), ami hasznos, ha visszajön/visszatölthető. Nem azt írtam, hogy egy-az-egyben töltöm vissza a /var-t (szét is verné az aktuális csomagkezelő adatbázisát), hanem azt, hogy adatokként mentem, és szükség szerint töltöm vissza.
A /srv: "Site-specific data served by this system, such as data and scripts for web servers, data offered by FTP servers, and repositories for version control systems (appeared in FHS-2.3 in 2004)." - olvasható itt: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Mondtam: én megértem, ha valaki másképp csinálja. Te meg azt értsd meg, hogy az én gépem az egy egyfelhasználós gép. -> Amit itt felsoroltál egy se olyan, hogy el akarnám menteni.
Egy elsődleges ext4 partíciót akár még Win alól is elérek. Az átméretezés és a snapshot tényleg jó dolog, de nincs rá szükségem.

rdiff-backup -ra +1, én is ezt használom backupra