_
~ DAMOLAB - Les tambouilles textes, teks et hacks ~
"Si les boulangers ne font pas plus souvent banqueroute, c'est qu'ils ont toujours des crinchons autour d'eux." (Flandres)
[ DAMOLAB (#TAGS) ] _./._ XBNF blog _./._ Blog (Life) _./._ Nous contacter

backup de données avec rsync et recommandations


| FR | par DAMO | | 14/05/2025 08h00 | (last update 07/04/2026 13h50) | 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



Rsync permet de synchroniser deux répertoires.
Via SSH est possible, il faudra appliquer la syntax que vous utiliseriez avec scp
user@host:path
.

/!\\ Dans ce post, je n'aborde que l'aspect backup, ici, uniquement des synchronisations d'une source vers un destination.

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

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


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

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


 /bak/src/ sera le mirroir de /tmp/src/ 


/!\\ sans le / dans la source
 /bak/src/src sera le mirroir de /tmp/src/ 



3) Recommandations



[Reco 1] préférer la syntax avec /source/ avec le / final et préciser la cible /bak/src/.
[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] préciser des chemins absolus pour la source et la destination
[Reco 5] bannir donc des chemins relatifs, le pire étant ., .., ./, ../../...

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é --
SSI/Gouv Alertes
Shodan (i)
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

-- Codage --
Ascii codes
CalculatorS

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