Linux: Příklady zálohování - rsync, tar, rdiff backup, dd, ftp, ssh, mysql

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

09.09.2016 napsal Hanz (update: 25.03.2017)
34

Linux: Příklady zálohování - rsync, tar, rdiff backup, dd, ftp, ssh, mysql

linux-priklady-zalohovani-rsync-tar-rdiff-backup-dd-ftp-ssh-mysql
Ohledně zálohování na linuxových systémech toho lze všude na netu nalézt hodně, ale tak nějak chybí jednoduchý článek se základními příklady použítí nástrojů rsync, tar, rdiff backup, dd, ftp, ssh, dump mysql - proto čtěte dále.

Zálohování MySQL


- provede zálohu MySQL databáze "mojedatabaze"


mysqldump -u root -h localhost -pheslo mojedatabaze | gzip -9 > mojedatabaze.sql.gz



- provede zálohu všech MySQL databází


mysqldump -u root -h localhost -pheslo --all-databases | gzip -9 > vsechnydatabaze.sql.gz





Zálohování vzdáleně přes rsync


- provede zálohu místního adresáře /home/hanz do vzdáleného umístění 192.168.7.77:/media/data/ s vynecháním souborů .txt


rsync -av --exclude="*.txt" /home/hanz root@192.168.7.77:/media/data/



Tar (komprimovaná) záloha přes SSH


- přihlásí se na vzdálené umístění 192.168.85.252, z něj zazálohuje /var/lib/mysql a /var/www do lokálního /home/backups/zaloha.tar.gz s komprimací gzip.


ssh root@192.168.85.252 | tar -czvf "/home/backups/zaloha.tar.gz" -P /var/lib/mysql /var/www



Inkrementální (přírůstková) záloha (rdiff-backup)


- bude automatizovaně zálohovat (přírůstky) z /home do umítění /media/usb/backup kromě /home/temp


rdiff-backup --exclude /home/temp /home /media/usb/backup



Klonování či vytvoření image celého oddílu/disku pomocí DD


DD je linuxový nástroj s primárním určením pro konvertování a kopírování dat (DD = convert and copy files). Umožňuje mimo jiné klonovat disky či ukládat jejich obsah do image - to je vhodné právě pro zálohu celého systému do jednoho souboru.

DD - vytvoření image disku do lokálního umístění


- převede obsah z /dev/md0p1 do image /mnt/usb/clone/md0p1.img


dd if=/dev/md0p1 | gzip -1 - | dd of="/mnt/usb/clone/md0p1.img"



DD - vytvoření image disku ze vzdáleného umístění


- přihlásí se přes SSH na vzdálené umístění 192.168.85.252, provede vytvoření image (vzdáleného) zařízení /dev/mmcblk0p1 do místního adresáře /home/backups/mmcblk0p1-image.gz


ssh root@192.168.85.252 "dd if=/dev/mmcblk0p1 | gzip -1 -" | dd of="/home/backups/mmcblk0p1-image.gz"



DD - klon z disku na disk (zrcadlo 1:1)


- provede překlonování disku /dev/sda na /dev/sdb


dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync



Záloha z FTP umístění pomocí WGET


- provete zálohu z FTP umístění ftp://user:heslo@domena.cz/adresar do místního adresáře /home/backups/ftp/


wget -r --directory-prefix=/home/backups/ftp/ ftp://user:heslo@domena.cz/adresar




Ukázka jednoduché interaktivní zálohy s proměnnými


- obsahuje základní logy, mount disku, rsync dat, notifikaci na email s přílohami a vypnutí stroje


#!/bin/bash
echo -n Pokud chces stroj po zaloze vypnout tak napis cislo 1:
read vypnout
datum=$(date '+%y-%m-%d')
uname -a >> /tmp/$datum.log-messages.txt
tail -500 /var/log/auth.log | grep 'sshd' > /tmp/$datum.log-ssh.txt
tail -100 /var/log/messages >> /tmp/$datum.log-messages.txt
mount /dev/sdc1 /mnt/usb
rsync -av --exclude="backups/" --delete /home/ /mnt/usb/backups -progress >> /tmp/$datum.backup.log
umount /mnt/usb
echo -e "Zaloha byla prave dokoncena. \n Datum je $datum" | mutt -s "Predmet zpravy" -a "/tmp/$datum.backup.log" -a "/tmp/$datum.log-messages.txt" -a "/tmp/$datum.log-ssh.txt" -- email@email.cz
if [ $vypnout == 1]; then
shutdown -h now
else
Zaloha byla dokoncena muzete vyjmout USB disk
echo "Zaloha je hotova, system nebude vypnut" | mail -v -s "Predmet zpravy" email@email.cz
fi

Vaše reakce na článek Linux: Příklady zálohování - rsync, tar, rdiff backup, dd, ftp, ssh, mysql

Napsat komentář k článku

Před 2 lety napsal komentář Martin [1]
Ahoj, mám raspberry pi 3 a už mi postupně odchází sd karta, v logu se objevují hlášky typu:



<blockquote>WARNING: Kernel Errors Present
Buffer I/O error on dev sda1, log ...: 1 Time(s)
EXT4-fs error (device sda1) in ...: 1 Time(s)
EXT4-fs error (device sda1): _ ...: 1 Time(s)
EXT4-fs warning (device sda1): htree_dirblock_to_tree:959: inode #2: lblock 0: comm ls: error -5 reading direc ...: 1 Time(s)
JBD2: Error -5 detected when ...: 1 Time(s)
WARNING: CPU: 2 PID: 24670 at fs/fs-writeback.c: ...: 1 Time(s)</blockquote>



Chci preventivně provést klon / překopírování na novou SD kartu u mého raspberry pi, jak na to?

Dík Martin
Před 2 lety napsal komentář OL3G [2]
Čau,

na nějaké linuxové mašině proveď pomocí DD zálohu SD karty do image:

<code>dd bs=4M if=/dev/sdc | gzip > /home/image.gz</code>

Pak proveď obnovu <code>gzip -dc /home/image.gz | dd bs=4M of=/dev/sdc</code>

Na Windows toto můžeš s SD kartou z Raspberry Pi udělat pomocí Win32 Disk Imager.
Před 2 lety napsal komentář Po51Ak [3]
A jak by se mělo postupovat, když chci celý HDD zálohovat pomocí DD do image? A jak následně provedu obnovu dat? Dík
Poslední komentář
Před 2 lety napsal komentář OL3G [4]
Čau Po51Ak,

základní DD příkaz pro vytvoření image z celého disku:
<code>dd if=/dev/sdc if=/tmp/zaloha.img</code>
a obnova pak
<code>dd if=/tmp/zaloha.img if=/dev/sdc</code>

Můžeš však ušetřit nějaké místo když dáš kompresi gzip:
<code>dd if=/dev/sdc ibs=4096 | gzip &gt; /tmp/zaloha.image.gz </code>
Obnovu pak uděláš takto:
<code>dd if=/tmp/zaloha.image.gz | gunzip | dd of=/dev/sdc</code>
nebo také
<code>gunzip -c /tmp/zaloha.image.gz | dd of=/dev/hda conv=sync,noerror bs=64K</code>

Nenašli jste co jste hledali?

Zkuste se podívat na články z archivu

Další články

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace