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

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/

#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" status=progress



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" status=progress



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 status=progress



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

Komentáře

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

25.10.2016 [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
OL3G
#1788

25.10.2016 [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.
Po51Ak
#1789

04.12.2016 [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
OL3G
#1790

04.12.2016 [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>
Jay T
#1864

20.10.2022 [5]
Poslední komentář
Díky za článek, funguje to.

Jednou za čas si dělám úplnou zálohu (klon) Ubuntu na externí usb disk tak, že nabootuji do Parted Magic a pak používám tyto příkazy:

# záloha (klon) 1:1 na extetrní disk a pak se PC vypne
dd if=/dev/sda of=/dev/sdd bs=64K conv=noerror,sync status=progress;poweroff

# záloha (klon) do img s kompresí na externí disk (nezabere to pak celé místo) a pak se PC vypne
mkdir /mnt/a;mount /dev/sdd1 /mnt/a;dd if=/dev/sda bs=20M| gzip -c > /mnt/a/202210.img.gz" status=progress;poweroff

# obnova komprimované zálohy se dělá pak tímto
gunzip -c /mnt/a/202210.img.gz | dd of=/dev/sdd


Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.