it:server:rsync

Rsync

rsync -aHAXxv --numeric-ids -e "ssh -p333 -T -c aes128-gcm@openssh.com -o Compression=no -x" --exclude=lost+found --progress "secretuser@192.168.0.1:/src/data" /home/destination/backup

Vysvětlení parametrů rsync:

-v -verbose
-e "ssh options" - specifikuje ssh připojení jako vzdálený shell
-a archive mode - zachovává oprávnění
-r -rekurze do adresářů
--delete odstraní z cílového adresáře data, která neexistují ve zdrojové cestě

Další parametr k použití je:

--ignore-existing

Pokud bude v cílovém adresáři již existující soubor se stejným názvem, bude ho ignorovat a přeskočí. Pokud chci ale vynutit synchronizaci v případě, že soubor ve zdrojovém adresáři je novější, tak lze použít parametr:

--update

Parametr zařídí, že budou přepsány soubory pouze v případě, že zdrojový soubor je novější než cílový.

zdroje:

Tady příklad modelové situace. Data mám na SD kartě Raspberry Pi. Chci, aby se každý den synchronizovala data na pevný disk, který mám také připojený k Raspberry Pi. Také chci, aby se v cílovém adresáři smazaly soubory, které jsem odstranil v zdrojovém adresáři. Jendoduše - synchronizace 1:1.

To mi zajistí tento skript:

#!/bin/bash
 
SRC='/mnt/source-data/'
DST='/mnt/destination-data/'
 
 
 
RSYNC=$(command -v rsync)
 
if [ ! -e $SRC ]; then
        echo "Error: Source path does not exists."
        exit 1
fi
 
 
if [ ! -e $DST ]; then
        echo "Error: Destination path does not exists."
        exit 1
fi
 
$RSYNC -aHAXx --numeric-ids --progress --delete $SRC $DST

Při přenosu dat z poškozeného disku je důležité minimalizovat riziko přenosu neúplných souborů a zajistit přehled o průběhu operace. Příkaz níže zajišťuje bezpečné kopírování dat:

rsync -av --progress --size-only --partial-dir=/home/user/novydisk/temp/ --timeout=20 stary-disk/2024-* /home/user/novydisk/
  • `-a`: Archivní režim, který zachová oprávnění, časové značky a symbolické odkazy.
  • `-v`: Zobrazí podrobné informace o probíhající operaci.
  • `–progress`: Zobrazí průběh kopírování pro každý soubor.
  • `–size-only`: Porovnává pouze velikost souborů, což zrychluje kontrolu, pokud jsou časové značky nespolehlivé.
  • `–partial-dir=/home/user/novydisk/temp/`: Částečně přenesené soubory ukládá do dočasné složky, aby nedošlo k jejich zanechání v cílovém adresáři.
  • `–timeout=20`: Nastaví maximální dobu čekání na odpověď při čtení dat (v sekundách).
  1. Bezpečný přenos: Neúplné soubory nejsou ponechány v cílové složce, ale zůstávají v dočasné složce pro další pokusy.
  2. Efektivita: Parametr `–size-only` zajišťuje, že již přenesené a nezměněné soubory nebudou kopírovány znovu
  3. Přehlednost: Díky `–progress` máte přehled o stavu přenosu v reálném čase. Dále pak vidím poškozené soubory (ty, které se nepodařilo přenést celé) v jedné složce.

Tento příkaz je ideální pro záchranu souborů z poškozeného disku, kde hrozí problémy při čtení dat. Složením všech parametrů je dosaženo bezpečného a efektivního přenosu dat.

  • it/server/rsync.txt
  • Poslední úprava: 2024/12/29 23:04
  • autor: Petr Nosek