_
~ DAMOLAB - Les tambouilles textes, teks et hacks ~
"Rosée du matin, tout va bien." - dicton
DAMOLAB (#TAGS) _./._ XBNF blog _./._ Blog _./._

backup de données avec rsync et recommandations


| FR | par DAMO | | 14/05/2025 08h00 | (last update 21/12/2025 18h09) | Commentaires |
#LINUX #DAMOLAB #BACKUP #SAMBA #ARCHITECTURE
Il est primordiale de backuper ses données, vos impressions d'éternité et
de sécurité sont fausses ...
|


1) Méthode la plus safe



/!\\ rsync est une commande dangeureuse, il faut être absolument certain de ce que l'on fait /!\\

La restauration la plus safe est d'archiver en tar, zip, ...

Exemple :
tar -cvf bak-20250501.tar {dir}
gzip bak-20250501.tar



2) Préparer sa commande rsync



/!\\ Dans ce post, je n'aborde que l'aspect backup, ici pas de synchronisation dans les deux sens.

Rsync permet de backuper un répertoire source vers
un répertoire destination : synchroniser vos données.

/!\\ cette commande est efficace, rapide mais dangereuse, bien restecter certaines règles (i).

rsync -aczvAXHS --progress --delete {source}{/} {destination}


/!\\ ici destination sera écrasée par option --delete pour être à l'image mirroir de source
/!\\ /!\\ source/ : le / final est important autrement un sous-répertoire est crée.

SSH est supporté, il faudra appliquer la syntax que vous utiliseriez avec scp
user@host:path
.

Exemple :
rsync -aczvAXHS --progress --delete /tmp/src/ /bak/src


/bak/src est sera le mirroir de /src/.

3) Recommandations



[Reco 1] avec /tmp/src sans le / final, la cible sera /bak/src/src ce qui est confus.
[Reco 2] utiliser l'option
--dry-run
qui simule sans rien modifier
[Reco 3] en cas de doute, tester sur une machine de test, un envirronnement chrooté ou cloisonnée.
[Reco 4] bannir des chemins relatifs, le pire étant ., .., ./, ../../...
[Reco 5] donc préciser des chemins absolus pour la source et la destination

4) Exemple de script backup.sh <element>



#!/bin/bash

# ================================================

cd /tmp

echo "Warning !!!"

echo "= bannir le . ou ./ dans le rsync au risque de détruire répertoire courant" 
echo "= mettre un / à la fin de $SRC sinon il crée un sous-répertoire dans $DST"
echo

# DRY=" --dry-run"

# ================================================

# default test

SRC=/tmp/test/SRC
DST=/tmp/test/DST

# choose element to backup

case $1 in

  PERSO)
	SRC=/home/PERSO
	DST=/media/damo/USB/BAK/PERSO
    ;;

  AUTRE)
...

    ;;

  *)
	echo "== Syntax $0 <element>"
	echo PERSO : données perso
	echo AUTRE : ...

	exit
    ;;
esac

RSYNC="rsync $DRY -aczAXHS --progress --delete $SRC/ $DST"
FIND='find . -type f -printf %p:%s\n'
echo Sync: $RSYNC
echo Find: $FIND

# ================================================
echo SRC=$SRC
echo DST=$DST

echo == check directories
echo   !!! Source list
cd $SRC || exit
$FIND|sort > .list.ref

echo   !!! Backup list
cd $DST || exit
$FIND|sort > $SRC/.list.pre

echo == Diffs SRC/DST before synchronize
echo diff $SRC/.list.pre $SRC/.list.ref
diff $SRC/.list.pre $SRC/.list.ref

echo press CTRL-D to continue !
echo press CTRL-C to STOP
cat


echo
echo == backup available size before
df -h .

# ================================================

echo
echo == rsync !!!
echo $RSYNC
echo
echo press CTRL-D to continue !
echo press CTRL-C to STOP
cat

$RSYNC


echo ================================================

echo == after-list of $DST created on $DST/.list.post
$FIND|sort > .list.post

echo
echo ================================================
echo == synchro pre/post diffs 
diff .list.pre .list.post

echo
echo ================================================
echo == diff ref/post : sould be the same 
diff $SRC/.list.ref .list.post

echo $?
echo == backup available size after
df -h .



Paix et sécurité à vous...


0.1) DamoLab


DamoLab@Sourceforge
DamoLab@DockerHub

0.2) Calculette composants radio


Electro-slide

0.3) Technologies


-- IA --
Mistral IA (le chat) (i)

-- Cyber-securité --
Shodan (i)11
Have I been pwned ? (i)
personal-data-leak-check
Osint
Zataz actualités

-- Adresses IP --
Mes Infos (IP, UA, ...)
info IP: WHOIS,ping,...
info IP: WHOIS,ping,...
info IP: Locallisation
info IP: abus
DNS checker

-- Mails --
GMX
Hushmail - mail temporaire sécurisé

encode/decode email for defeating bots
 $_='mailto: matt@org';s/(.)/chr(ord($1)+5)/eg;$_ 


-- Linux --
News LinuxFr
Mind-map Linux
Tutorials
crontab

-- Blogs Teks --
@TechWorldwithNana
@Cookieconnect
@GoCloudArchitects
@grafikart
@Underscore_
@cybernewsenfrancais


-- Geek Code --

décoder un GC

GCS d>+(---) s- a+ C++$ UL+>$ UOS++$
P++++>$ L++ E W++(++) N(+) o-- K+ w>--- O- M>+ PS+>+++ PE-- Y+@ t-(+) >5 X+ R>+ !tv b+
D---- D+ G e+++ h---- r+++ z+++



Rescue NEO...
(JS by Rezmason)


Nom/surnom:
Message:


revenir sur l'article
#LINUX #DAMOLAB #BACKUP #SAMBA #ARCHITECTURE

Aucun commentaire.

dans
une
galaxy
lointaine
Charte du site damolab.zapto.org est motorisé par

"La force est une sorte de fluide crée par tout être vivant, une énergie qui nous entoure et nous pénètre, et qui maintient la galaxie en un tout unique."
- Obi-Wan à Luke Yoda