abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 17:00 | Zajímavý článek

Asociace pokročilých výpočetních systémů USENIX publikovala na svém YouTube kanálu videozáznamy online přednášek ze svých posledních konferencí. Doporučit lze například videozáznamy z USENIX Security '20 (29th USENIX Security Symposium) nebo videozáznamy z WOOT '20 (14th USENIX Workshop on Offensive Technologies). Ocenění nejlepší článek (Best Paper) na WOOT '20 získal článek BLESA: Spoofing Attacks against Reconnections in Bluetooth Low Energy.

Ladislav Hagara | Komentářů: 0
včera 15:55 | Bezpečnostní upozornění

Samba, svobodná implementace síťového protokolu SMB/CIFS, byla vydána ve verzích 4.12.7, 4.11.13 a 4.10.18. Řešena je bezpečnostní chyba CVE-2020-1472 v protokolu Netlogon (Zerologon). Microsoft ji ve svých produktech opravil 11. srpna. Jedná se o chybu s CVSS 9.8. Neautentizovaný útočník se může stát správcem domény.

Ladislav Hagara | Komentářů: 0
18.9. 16:22 | Nová verze

Byla vydána eRouška 2.0 pro Android a iOS. Nově využívá systém oznámení o možném kontaktu vyvinutý společnostmi Google a Apple. Zdrojové kódy eRoušky jsou k dispozici na GitHubu (Android, iOS).

Ladislav Hagara | Komentářů: 46
18.9. 15:33 | Humor

Máte na klávesnici málo kláves? Pomoci vám může 433% Keyboard [reddit, Wayback Machine].

Ladislav Hagara | Komentářů: 17
18.9. 13:33 | Komunita

Otevřená certifikační autorita Let’s Encrypt (Wikipedie) včera na svém blogu oznámila vydání 6 svých nových certifikátů: 1 kořenový, 4 mezilehlé a 1 křížově podepsaný. Kořenový certifikát ISRG Root X2 a mezilehlé E1 a E2 jsou již ECDSA místo RSA. Certifikační autorita Let’s Encrypt byla představena v listopadu 2014. První certifikát vydala přesně před pěti lety, v září 2015. Dnes jich denně vydává milion a půl.

Ladislav Hagara | Komentářů: 0
17.9. 23:11 | Komunita

Mozilla Corporation na svém blogu informuje, že ukončila služby Firefox Send a Firefox Notes. Mozilla Foundation na druhé straně představila rozšíření RegretsReporter. Jedná se o rozšíření pro Firefox a Chrome umožňující Mozillu informovat o doporučených videích na YouTube, jejíchž zhlédnutí uživatel lituje.

Ladislav Hagara | Komentářů: 34
17.9. 15:44 | Zajímavý článek

Společnost Nethemba informuje o již opravené kritické zranitelnosti v aplikaci Moje eZdravie na Slovensku. Kdokoli si mohl stáhnout informace o všech osobách testovaných na COVID-19 (jméno, příjmení, rodné číslo, telefonní číslo, místo pobytu, datum a výsledek odběru).

Ladislav Hagara | Komentářů: 41
17.9. 13:55 | Zajímavý software

GitHub CLI dospěl do verze 1.0.0. GitHub CLI umožňuje pracovat s GitHubem z příkazové řádky (gh issue list; gh pr status; gh release create; gh repo view; …).

Ladislav Hagara | Komentářů: 3
17.9. 09:00 | Nová verze

LabPlot (Wikipedie) je svobodná multiplatformní KDE aplikace pro interaktivní vytváření grafů a analýzu vědeckých dat. Téměř po roce vývoje byla vydána nová verze 2.8.

Ladislav Hagara | Komentářů: 0
17.9. 07:00 | Nová verze

Bylo vydáno Eclipse IDE 2020-09 aneb Eclipse 4.17. Představení novinek tohoto vývojového prostředí také na YouTube.

Ladislav Hagara | Komentářů: 0
Používáte aplikaci eRouška?
 (16%)
 (4%)
 (2%)
 (12%)
 (52%)
 (8%)
 (7%)
Celkem 352 hlasů
 Komentářů: 34, poslední dnes 09:04
Rozcestník

Zálohovanie na domáci server

6.11.2012 05:00 | Přečteno: 2854× | 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: 69
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: 39 | 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: merlins | Brno - Venkov / Rosicko
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: merlins | Brno - Venkov / Rosicko
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: 69
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: merlins | Brno - Venkov / Rosicko
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: 20 | 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.