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

Autor Hanz
Publikováno 09.09.2016 (update: 21.01.2020)
Kategorie Článek
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/

#někdy se uvádí použití exclude a include i bez '=', ale manuál se zmiňuje jen o variantě s '='



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 --exclude "**/.*" /home /media/usb/backup

rdiff-backup - vyjímka na skryté soubory a adresáře (.*)

rdiff-backup --exclude "**/.*" /home /media/usb/backup

rdiff-backup - vyjímka na skryté soubory a adresáře (.*), ale zároveň povolit zálohu /home/user/.password-store/

rdiff-backup --include /home/user/.password-store/ --exclude "**/.*" /home /media/usb/backup


rdiff-backup - záloha na vzdálené umístění přes SSH

rdiff-backup /home/user/ user@10.10.10.10::/mnt/backups/rdiff_user


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


79

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 4 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 4 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 3 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 3 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>
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