abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 22:44 | IT novinky

    IBM kupuje společnost HashiCorp za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 0
    dnes 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 1
    dnes 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 6
    včera 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 21
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 29
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 720 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Zálohovanie na domáci server

    6.11.2012 05:00 | Přečteno: 2944× | poslední úprava: 6.11.2012 00:29

    Zdravím

    Trochu skriptujem v BASHi a ako každý správny linuxák som mal neodolatelnú potrebu napísať si vlastný zálohovací skript. Prezentované riešenie je výhodné v tom, že vštky zálohy vyzerajú ako plné aj keď sú v skutočnosti inkrementálne. Bola to dobrá motivácia na zdokonalenie skriptovania.

    Na úvod ešte spomeniem že na skripte sme pracovali spolu s bratrancom čiže nieje to len moje dielo :-).

    Požiadavky:

    Chcem zálohovať domáce fotky, dokumenty a prácu. Je to cca 50GB dát z toho viac ako polovica sú menšie súbory v rozsahu 1MB - 5MB. Z toho sa deňne mení len malá časť (cca 200MB), zvyšok sa nemení. Zálohvoať sa bude na domáci server. Záloha musí prebehnúť čo najrýchlejšie. Zálohy musia byť prehliadateľné cez štandardný filemanager (napr MC) aby bolo možné prezerať a obnoviť aj jednotlivé súbory bez potreby špecialnej aplikácie čo vytvorila zálohu (pre prípad kompletnej havárie notebooku). Adresárová štruktúra musí vyzerať pri každej zálohe presne rovnako ako oreginál (vyzualne nesmie nič z 50GB súborov chýbať). Nenáročnosť na HW prostriedky. Kompresia nieje potrebná.

    Hlavné súčasti riešenia:

    Rsync - plná záloha:

    rsync -ab --log-file=$tgf/00_full.log --block-size=$blok -X /tmp/exclude -d $s1 $tgf Rsync skopíruje všetko do nového umiestnenia, spraví log, vylúči súbory čo sa nebudú zálohovať,a data bude kopírovať po blokoch zadanej velkosti

    Rsync - prírastková záloha:

    rsync -ab --block-size=$blok --link-dest=$lbf -X /tmp/exclude -d $s1 $tgi

    Rsync postupuje rovnako ako pri plnej zálohe. Na nezmenené súbory spravý hardlink namiesto kopírovania.

    SSHFS - prístup na server:

    sshfs tomolc@$iph:/home/tomolc/zalohy/tomolc $tg

    Kontrola či NB bezí z batérie:

    cat /sys/class/power_supply/ACAD/online

    V prípade že NB beží z batérie spraví sa len prírastková záloha.

    Samotný skrypt pridáva niekoľko obslužných pasáži, ktoré kontrolujú stav NB, pripoja domáci server a vyhodnotia aká záloha sa uskutoční - full alebo prírastková.

    V dizkuzii by som sa chcel poradiť ohladom optimálnosti riešenia vzhladom na čas zálohovania na 100Mbit LAN a jednojadrovom CPU na notebooku (Intel Core2Solo 1,6Ghz). Pôvodná predstava bola, že plnú zálohu stačí robiť raz za niekoľko mesiacov a prírastkovú potom každý deň.

    Je dvoležité aby dáta v zálohe vyzerali rovnako ako oreginál. V prípade že si zmažem omylom súbor tak si jednoducho cez sshfs pripojím disk so zálohou a skopírujem cez filemanager záložný súbor nazad do notebooku.

    Skript vyzerá takto: (Zatial som neprerobil všetky komenty do AJ - v tom som začiatočník.)

    
    echo "back_remote======================================================="
    ac=`cat /sys/class/power_supply/ACAD/online`
    #if [ "$ac" = "0" ]; then echo "power off-line"; exit; fi
    
    dnorm="`date +'%Y-%m-0%d_%H-%M-%S'`" #human date
    dunix="`date '+%s'`" #unix date in "s"
    bn=30 #backup numbers
    hm=$HOME #user home
    export DISPLAY=:0
    
    blok=32768 #65536, 16384
    iph=192.168.0.101 #ip servera urceneho na zalohy
    fbd=60 #full backup time period in days
    ibh=24 #incremental backup time period in hours
    fbt=`echo $(($fbd * 24 * 3600))` #full backup time period in "s"
    ibt=`echo $(($ibh * 3600))` #incremental backup time period in "s"
    
    s1="$hm" #source dirs to backup
    tg=/media/netfs/.z_back_remote #remote backup target
    tgf=$tg/$dnorm-full #target full backup
    tgi=$tg/$dnorm-incr #target incr backup
    lbf=$tg/00_last_backup_full #last backup full symlink
    lbi=$tg/00_last_backup_incr #last backup incr symlink
    
    echo "mobac
    .mobac
    XnView.db
    .thumbnails
    lost+found
    .cache
    " > /tmp/exclude #users excludet dirs or files
    
    #zalohovacie funkcie----------------------------------------------------
    function backfull () {
    	echo "full_backup==================================================="
    	cd $tg; mkdir $tgf #vytvori ciel pre novu plnu zalohu
    	if [ -L "$lbf" ]; then rm $lbf; fi
    	ln -s $dnorm-full 00_last_backup_full #vytvori novy simlink aby bolo jasne ktora zaloha je posledna plna
    	echo $dunix > $tgf/full.time #poznaci unixovi datum tejto plnej zalohy
    	echo "backfull"
    	rsync -ab --log-file=$tgf/00_full.log --block-size=$blok -X /tmp/exclude -d $s1 $tgf
    	echo "end==========================================================="; sleep 3
    	}
    function backincr () {
    	echo "incremental_backup============================================"
    	cd $tg; mkdir $tgi
    	if [ -L "$lbi" ]; then rm $lbi; fi
    	ln -s $dnorm-incr  00_last_backup_incr
    	echo $dunix > $tgi/incr.time
    	echo "backinr"
    	rsync -ab --block-size=$blok --link-dest=$lbf -X /tmp/exclude -d $s1 $tgi
    	echo "end==========================================================="; sleep 3
    	}
    
    #sprava uloziska--------------------------------------------------------
    function hzon () {
    	ping -c 3 -W 3s $iph > /dev/null
    		if [ "$?" = "0" ]; then	echo "domaci server je online"; sync
    			sshfs tomolc@$iph:/home/tomolc/zalohy/tomolc $tg
    		else echo "domaci server je offline"; exit
    		fi
    }
    function hzoff () { sync; sync; fusermount -u /media/netfs/.z_back_remote;}
    
    #kontroly---------------------------------------------------------------
    function control () {
    	rsync --version &>/dev/null
    	if [[ ! $? -eq 0 ]]; then echo "nainstaluj program rsync"; exit; fi
    
    	sync; sleep 2
    	if [ ! -f "$tg/tomolc.test" ]; then hzon; else echo "Server uz je pripojeny, zacinam zalohovanie"; fi
    }
    
    #samotne zalohovanie----------------------------------------------------
    control; cd $tg
    if [ -d "$lbf" ]; then dplna="`cat $lbf/full.time`"; else dplna=0; fi #pri uplne prvom spusteni spravi plnu zalohu, pri dalsich uz pracuje podla ligiky nizsie
    if [ -d "$lbi" ]; then dprir="`cat $lbi/incr.time`"; else dprir=0; fi #pri uplne prvom spusteni spravi plnu zalohu, pri dalsich uz pracuje podla ligiky nizsie
    
    if [ "$ac" = "0" ]; then echo "sekcia 1 power off-line"; echo "INCREMENTAL"; fi #ak NB bezi na baterku urobi sa len prirastkova zaloha.
    if [ "$ac" = "1" ]; then #ak je PC pripojeny do elektriky tak sa rozhoduje co dalej
    	echo "sekcia 2 power online"
    	if [ `echo $(($dunix - $dplna))` -ge $fbt ]; then #podmienka vypocita ako stara je posledna plna zaloha a ak je starsia ako FB (def hore) spravy znova plnu zalohu
    		echo "sekcia 2-3 plna"
    		backfull
    	elif [ `echo $(($dunix - $dprir))` -ge $ibt ]; then
    		echo "sekcia 2-4 prirastkova"
    		backincr
    	else echo "dnes uz zaloha prebehla"
    	fi
    	long="`ls -t $tg | tail -n +$bn`" #list backup older of backup numbers
    	#if [ ! "$long" = "" ]; then echo "remove old backup"; cd $tg; rm $long; fi #remove old backup
    fi
    sync; sleep 1; sync; hzoff
    echo "end==============================================================="; sleep 3
    
           

    Hodnocení: 75 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Josef Kufner avatar 6.11.2012 11:55 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Koukni na rdiff-backup. Je to rsync + inkrementální zálohy.
    Hello world ! Segmentation fault (core dumped)
    AsciiWolf avatar 6.11.2012 13:48 AsciiWolf | skóre: 40 | blog: Blog
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    +1
    gtz avatar 6.11.2012 11:57 gtz | skóre: 27 | blog: gtz | Brno
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Pôvodná predstava bola, že plnú zálohu stačí robiť raz za niekoľko mesiacov a prírastkovú potom každý deň.
    Pokud nebudete dělat rotaci záloh (myslím změnu disku, médií apod.) pak Vám stačí udělat plnou pouze jednou a následně pouze increment.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    6.11.2012 12:23 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Ďakujem za reakcie.

    Tá inkrementálna záloha mi robí aj hardlinky na nezmenené súbory. Keď dám df -h filesystém sa tváry akože som tam nakopíroval ďalších 50GB dát aj keď sa realne kopírovalo povedzme len 1GB.

    Keď takto virtuálne zaplním disk budú zálohy fungovať ďalej? Na disku je ext4. Je to otázka voľby FS?
    pocasienahorach.sk
    gtz avatar 6.11.2012 19:45 gtz | skóre: 27 | blog: gtz | Brno
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Nejsem si jistý zda by se do scriptu nemusel přidat přepínač pro hardlinky (--hard-links). Díval jste se zda se to nějak celé nezacyklilo protože "df" ukáže total. Když se to kopírovalo včetně těch hardlinků jsou ty hardlinky na cílovém systému stejné?
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    6.11.2012 20:55 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Zdravím

    Priamo rsync robí hardlinky cez --link-dest=/posledna/plna/zaloha. Čiže v pri inkrementálnej zálohe sa skopírujú len zmenené súbory voči poslednej plnej zálohe a na zvyšok sa spravia hardlinky. Samozrejme posledná plná záloha aj inkrementálne zálohy sú na rovnakej partícii disku na servery.
    pocasienahorach.sk
    frEon avatar 6.11.2012 12:02 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    ve vecech jako fbt=`echo $(($fbd * 24 * 3600))` muzes usetrit jedno volani echo a jeden subshell a napsat rovnou:

    fbt=$(($fbd * 24 * 3600))

    Talking about music is like dancing to architecture.
    6.11.2012 12:30 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Zdravím

    ušetrím subshell aj v tomto prípade?:

    dnorm="`date +'%Y-%m-0%d_%H-%M-%S'`" ---> dnorm=$(date +'%Y-%m-0%d_%H-%M-%S')
    pocasienahorach.sk
    frEon avatar 6.11.2012 14:06 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    ne. `` a $() je v bashi ekvivalentni zapis az na rozdil v tom, ze $() muzes vnorovat do sebe (jelikoz jde u toho poznat, co je zacatecni znak a co ukoncovaci) a vzdycky to pusti subshell.

    Usetreni jsem myslel v pripade, kdy nechas bash udelat subshell, v nem spustit echo a tomu predat vysledek toho vypoctu v $(()).

    Jinak $(()) zadnej subshell nepousti, vpodstate to jenom rika bashi, to co je uvnitr vyhodnot jako aritmetyckej vyraz a vrat to.

    Talking about music is like dancing to architecture.
    6.11.2012 12:07 RapMan | skóre: 14 | blog: RapMan
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Ja pouzivam grsysnc, hezky si to naklikam...
    Michal Fecko avatar 6.11.2012 14:30 Michal Fecko | skóre: 31 | blog: Poznámkový blog
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Kým iní ešte klikajú, ja už ENTRUJEM :-D
    Michal Fecko avatar 6.11.2012 14:30 Michal Fecko | skóre: 31 | blog: Poznámkový blog
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Kým iní ešte klikajú, ja už ENTRUJEM :-D
    6.11.2012 14:59 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Pochopil jsem to spravne, ze delas rsync na filesystem pripojeny pres sshfs? Proc tak slozite? rsync umi vyuzit ssh primo (cil se zada jako user@host:path) a je to tak rozhodne vic duveryhodne reseni.

    6.11.2012 16:55 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Ďakujem za tip. Toto som v man prehliadol. Idem to prerobiť.
    pocasienahorach.sk
    Michal Fecko avatar 6.11.2012 17:45 Michal Fecko | skóre: 31 | blog: Poznámkový blog
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    alebo este vyuzit kluce SHA a netreba ani heslo :-D
    Josef Kufner avatar 6.11.2012 19:14 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    RSA ;-)

    A pak to ještě hodit do cronu a je vystaráno.
    Hello world ! Segmentation fault (core dumped)
    Michal Fecko avatar 6.11.2012 19:43 Michal Fecko | skóre: 31 | blog: Poznámkový blog
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Presne RSA :D + cron :D
    6.11.2012 15:27 Robertek | skóre: 5
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Podivej se na rsnapshot a pak zauvazuj zda je treba vymejslet kolo.
    6.11.2012 20:56 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Ďakujem za typ určite vyskúšam. Tento program som v dobe tvorenia skriptu nenašiel.
    pocasienahorach.sk
    6.11.2012 17:06 marek_hb
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Příloha:
    na tohle je super rdiff-backup - umí inkrementální zálohy a v backup adresáři udržuje v čitelném stavu poslední zálohu a přes rdiff-backup-fs umí připojit zálohu jako klasickou adresářovu strukturu - taky super věc

    do přílohy dávám svůj první a jediný script, co jsem kdy dělal :-) - stálo mě to X nervů a marného vzpomínání na ATARI 800XE a BASIC před víc jak 20 ti lety - tehdy jsem naposledy něco "programoval" :-) - ale funguje jak potřebuju :-)

    zkoušel jsem něco podobného naklikat, ale jak v gnome, tak v kde jsem narážel na různé pič.viny kvůli kterým jsem se na to musel vykašlat

    6.11.2012 20:02 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Zkoušel sis cvičně zálohu obnovit? Neschopnost obnovit zálohu=nemít zálohu.
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    Michal Fecko avatar 6.11.2012 20:13 Michal Fecko | skóre: 31 | blog: Poznámkový blog
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Ako to kazdotyzdenne zalohovanie na pasku z ktorej sa vyklula paska cistiaca :D
    gtz avatar 6.11.2012 20:28 gtz | skóre: 27 | blog: gtz | Brno
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    a pak telefon ... "umřel nám server, potřebujeme hodně rychle data nazpět" .... potom zpocené čelo, pot .. rychle cigáro a kafe a hledat tu zálohu na které něco je :-)
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    6.11.2012 21:01 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Zdravím

    Ano skúšal. Pripoil som si cez SSHFS umiestnenie záloh a následnie som si cviťčne vykopíroval z poslednej inkrementálnej zálohy nejaký film a pár súborov na lokálny disk. Prebehlo to ok.
    pocasienahorach.sk
    Bedňa avatar 7.11.2012 11:27 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Záloha na domáci server nieje záloha, máš to na tom istom vedení, jeden elektrický šok a máš po všetkom.

    Hlavne veci ako fotky a vlastnú tvorbu (programy atď.) si treba zálohovať aspoň dva krát. Mám jeden USB disk z vstavanou ochranou proti prepetiu, pripojujem ho len za pekného počasia, vyzálohujem a hneď odpojím. Rozrobené veci, väčšinou v rádach KB hádžem na jeden server ku kámošovi a ešte na jeden čo mám v prenájme, tak len toľko. Teraz ti to možno príde ako blbosť, ale keď o všetko prídeš, dáš mi zapravdu ;)
    KERNEL ULTRAS video channel >>>
    7.11.2012 20:28 tomolc | skóre: 29 | blog: Live Desktop Tuning | Bratislava
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Zdravím

    Ano, máte pravdu. V šuplíku na spodku skrinky mám hardisk, ktorý pravidelne pripájam cez USB a odzálohujem tam disk :-).
    pocasienahorach.sk
    Bedňa avatar 7.11.2012 20:42 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    A fotky si určite niekde uploadni, alebo daj spraviť vo fotolabe, strata môže bolieť.
    KERNEL ULTRAS video channel >>>
    9.11.2012 11:08 xHire | skóre: 21 | blog: Linuxovník
    Rozbalit Rozbalit vše Re: Zálohovanie na domáci server
    Mám zvláštní odpor k zálohování na stejný typ média, jako na kterém jsou původní data.

    Hlavní zálohy (neinkrementální) v delších intervalech dávám na DVD-RAM, zálohy „pro jistotu“ (jen důležitá data, co se hodně mění, abych neměl jen zálohu měsíc starou) pak každou půl hodinu na SDHC kartu ve slotu v notebooku (via rdiff-backup).
    Kryptoměny a bločenka.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.