(laissé en l'état) Quels dossiers, fichiers à sauvegarder

Demande d'aide : c'est ici.
Répondre
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

Bonjour à Toutes et Tous :006:

Comme j'ai eu un p'tit souci au cours de ma sauvegarde, sur un dossier que j'aurai dû exclure, aussi, je me pose la question de savoir si mon script est correct ou pas...

Quels seraient les dossiers, et/ou fichiers à exclure de la sauvegarde ?

voici la "base" du script que j’accommode pour chaque dd de sauvegarde :

Code : Tout sélectionner

  rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/run" --exclude="/proc" --exclude="/sys" / /media/bernard/Seagate500-3-5/ 2>> "$backup"; retour_rsync=$?
Merci d'avance pour vos éclairages :good:
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour,

Justement j'étais à la recherche d'un exemple de liste d'exclusion pour répondre à ton "patacaisse"


Voici un exemple de fichier "exclude_file" à utiliser avec l'option :

--exclude-from="/path/to/exclude_file"

Code : Tout sélectionner

cat exclude_file

# Rsync Exclude File
# Dirs to exclude
# Trailing backslashes ensure copy of empty dirs
/dev/
/lost+found/
/media/
/mnt/
/proc
/run/
/sys/
/tmp/
après tu ajoutes/enlèves selon tes besoins.
**Simple Utilisateur** -- Debian stable - XFCE
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

:006: dezix :wink:

Ah voui, ça en fait le double, de ce que j'avais inscrit...

je vais modifier, et elle devrait aller plus vite, la sauvegarde...

par contre, j'utilise les exclusions sur une ligne, et je méconnais l'utilisation par fichier... si tu avais un exemple de cette utilisation par un fichier, et comment "l'appeler" par commande, je prendrai :wink: :good: surtout si c'est plus rapide...

Merci, je vais tester cet aprem :wink:
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4960
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Ne pas oublier d'exclure le dossier dans lequel est monté le système de sauvegarde ! (si applicable évidement)
Les sauvegardes récursives, c'est un piége classique!
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Je pense que :

rsync -avh --exclude-from="/chemin/du/fichier/exclude" --del --backup --backup-dir="/chemin/répertoire/backup_files" --log-file="chemin/du/fichier/journal" / /chemin/répertoire/destination/



--archive, -a => archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
=> permet de conserver les métadonnées des fichiers, ce qui est nécessaire pour une restauration fiable

et
--del est équivalent à --delete-during


devrait faire une bonne base,
donc en ajoutant à l'"exclude" une éventuelle destination locale et ce que tu ne veux pas (types de fichiers ou autres rep...).


Pour les autres options :

--partial je ne connais pas (mais pourquoi pas)

--progress si tu mets -v ça n'a peut-être plus trop d'intérêt ???


Note : Je ne suis pas un grand connaisseur (je n'ai pas étudié le manuel à fond)
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Un dernier point qui ne devrait pas être négligé :

Pour être certain de la validité d'une sauvegarde,
celle-ci doit être faite sur un système de fichiers "figé" (aucun fichier ne doit être modifié durant le processus d'enregistrement).

Pour cela soit le système est arrêté et le système de fichier monté en lecture seule (par sécurité),
soit si on a du LVM ou un système de fichiers qui le supporte, faire un "snapshot" (instantané) qui va servir à la sauvegarde.
**Simple Utilisateur** -- Debian stable - XFCE
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

Merci à Vous 2 :wink: :good:

j'suis en train de me dépatouiller avec une banque (pour ne pas la nommer, la banque postale... vue comme elle agit avec ses clients... :sad: ) d'où mon peu de présence...

je leur règle leur cas, et j'reviens :wink:

:006:
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

:006: à vous deux :wink:
ayé, j'ai supprimé la gène...
piratebab a écrit : 11 mai 2022, 12:02 Ne pas oublier d'exclure le dossier dans lequel est monté le système de sauvegarde ! (si applicable évidement)
Les sauvegardes récursives, c'est un piége classique!
je suis déjà tombé dedans... :wink:

mais, ça forme :yahoo:


dezix a écrit : 11 mai 2022, 14:29 Je pense que :

rsync -avh --exclude-from="/chemin/du/fichier/exclude" --del --backup --backup-dir="/chemin/répertoire/backup_files" --log-file="chemin/du/fichier/journal" / /chemin/répertoire/destination/



--archive, -a => archive mode is -rlptgoD (no -A,-X,-U,-N,-H)
=> permet de conserver les métadonnées des fichiers, ce qui est nécessaire pour une restauration fiable

et
--del est équivalent à --delete-during


devrait faire une bonne base,
donc en ajoutant à l'"exclude" une éventuelle destination locale et ce que tu ne veux pas (types de fichiers ou autres rep...).


Pour les autres options :

--partial je ne connais pas (mais pourquoi pas)

--progress si tu mets -v ça n'a peut-être plus trop d'intérêt ???rsync -avh "$exclude" --del --backup / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?



Note : Je ne suis pas un grand connaisseur (je n'ai pas étudié le manuel à fond)
j'ai passé quelques temps, cette fin de semaine, à tester ces commandes, et j'ai toujours les répertoires /media qui sont montés :shok:

j'ai testé plusieurs formes de commandes, et rien, sauf celle qui détaille chaque exclusion !

je vous montre les commandes testées :

Code : Tout sélectionner

rsync -avh "$exclude" --del --backup / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$? 

ou

rsync -avh "$exclude" --del --backup  / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?

ou

rsync -avh --"$exclude" --del --backup / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?
j'ai inséré des espaces entre les /, puis des -- avant les déclarations au path, mais ... résultats toujours identiques !
la déclaration au path est :

Code : Tout sélectionner

Date=$(date +%d-%m-%Y)
Heure=$(date +%T)
exclude=/home/bernard/MesScripts/MesScripts-Exclusion/exclude
backup=/home/bernard/bin/Sauvegardes/backuperrorSovTotale-DD-O.log
echo -e "$BLEU" "Exécuter SOV3 ? [o/N]";
read -sn1; 
j'ai peut-être... sûrement... fait une erreur, mais elle m'est devenue invisible la coquine... :wink:

en déclarant le fichier d'exclusion en path, il est plus "facile", normalement... à insérer dans une ligne de commande, mais j'ai cherché s'il fallait bien mettre le $ devant exclude, j'ai procédé comme $backup et n'ai rien trouvé sur la déclaration dans... au... pour le path...

Merci de votre éclairage les Amies, Amis :wink:
:006:
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

cb821@perluce.fr a écrit : 16 mai 2022, 12:03 j'ai toujours les répertoires /media qui sont montés

Ça semble logique si tu utilises un support externe comme destination de ta sauvegarde (DD-0)... ou si tu as quelque-autre clé connectée.

cb821@perluce.fr a écrit : 16 mai 2022, 12:03 je vous montre les commandes testées :

Ayant moi-même souvent pas mal de difficultés à (re)piger mes propres scripts quelques temps après les avoir écrits (et j'y insère pourtant de nombreux commentaires)
alors déboguer des bouts de scripts que je n'ai pas écrits est au dessus de mes forces :(

Ceci dit, je peux tout de même nous interroger sur les points suivants :


1. Déclarations de variables

Oui, c'est un bon système.

Je te recommanderais :

+ Des noms plus "explicites" (peut-être) p.ex : exclude_file comme ça tu sais sans équivoque qu'il s'agit d'un fichier et pas autre chose

+ Des noms plus précis, tu nommes backup un fichier journal ; pour moi ça mérite p.ex: backup_log_file

+ Coter les valeurs

Code : Tout sélectionner

Date="$(date +%d-%m-%Y)"
Heure="$(date +%T)"
exclude="/home/bernard/MesScripts/MesScripts-Exclusion/exclude"
backup="/home/bernard/bin/Sauvegardes/backuperrorSovTotale-DD-O.log"

1.a Destination

/home/bernard/bin/Sauvegardes/backuperrorSovTotale-DD-O.log

Pourquoi ne pas envoyer ce fichier sur le même support que le reste de la sauvegarde,
il pourrait finalement être nommé backup_error.log ou rsync_error.log s'il est placé sur un chemin sans équivoque (horodaté).

En plus mettre un rep : /home/bernard/bin/ me semble une erreur ; /home/bernard/.local/bin/ me semble plus respectueux des usages.

Ensuite placer des fichiers qui ne sont pas des exécutables binaires dans un .../bin n'a pas de sens (à mes yeux).

Comme écrit avant sa place serait du style : /media/bernard/DD-O/log/<date>/rsync_error.log
et ça te permets d'y envoyer les autres logs relatifs à la même sauvegarde.


2. Option --exclude-from=

rsync -avh --"$exclude" ....

ça devrait être p.ex :

rsync -avh --exclude-from="$exclude_file" ....



3. Option --backup

ManPage => --backup, -b make backups (see --suffix & --backup-dir)

=> relire le manuel et faire des tests,
mais je ne suis pas certain que cette option sans l'une des 2 autres, au moins, ait du sens ???



Comme écrit plus haut, je ne suis vraiment pas une flèche en script (ni en rien d'autre)
et donc le meilleur conseil que je puisse partager :

Faire au plus simple !

Je sais que ce n'est pas facile, si on ne prend pas les choses par le bon bout,
et ça demande de l'expérience... pour choisir le bon bout.

Bref, on se mord la queue et ça fait mal :013:
**Simple Utilisateur** -- Debian stable - XFCE
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

:006:
je réponds partiellement, en faisant "autre chose"... :-o :wink: !
dezix a écrit : 16 mai 2022, 14:13
cb821@perluce.fr a écrit : 16 mai 2022, 12:03 j'ai toujours les répertoires /media qui sont montés

Ça semble logique si tu utilises un support externe comme destination de ta sauvegarde (DD-0)... ou si tu as quelque-autre clé connectée.
Ben non, puisque en excluant hors fichier, ça marche !

je te, vous montre le script entier, puisque j'en ai fait un pour test, sur un disque de sauvegarde :

Code : Tout sélectionner

#!/bin/bash
#
# Ce script permet de faire une sauvegarde incrémentale manuelle avec "rsync"
#
# Variables de couleurs
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m" #invisible... à éviter !
BLEU="\\033[1;34m"
CYAN="\\033[1;36m"
JAUNE="\\033[1;33m"
ROSE="\\033[1;35m"
ROUGE="\\033[1;31m"
STNDT="\\033[0;39m"
VERT="\\033[1;32m"

Date=$(date +%d-%m-%Y)
Heure=$(date +%T)
exclude=/home/bernard/MesScripts/MesScripts-Exclusion/exclude
backup=/home/bernard/bin/Sauvegardes/backuperrorSovTotale-DD-O.log
echo -e "$BLEU" "Exécuter SOV3 ? [o/N]";
read -sn1;
if [[ $REPLY =~ [yYoO] ]]
  then
  echo -e "$VERT" "\n ======================\n Lancement sauvegarde à\n $Heure le $Date\n ======================\n"
    else
    echo -e "$ROUGE" "====================================\n    Procédure SOV3 interrompue par\n utilisateur à $Heure le $Date\n ====================================";
    echo -e "$STNDT" "\n Sortie SOV3\n"; exit;
fi

#DD-O sur /media/bernard
if [[ "`df --output=source /media/bernard/ | tail -1`" != "`df --output=source /media/bernard/DD-O/ | tail -1`" ]]
  then echo -e "$ROSE" "\n\n ========================\n Synchronisation en cours\n  à $Heure sur DD-O\n ========================\n"
#    rsync -avh exclude-from=/home/bernard/MesScripts/MesScripts-Exclusion/exclude --del --backup / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?
    rsync --archive --partial --progress --delete-during --stats --exclude="dev" --exclude="lost+found"  --exclude="/media" --exclude="mnt" --exclude="/run" --exclude="/proc" --exclude="/sys" --exclude="tmp" / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?
    echo
    echo -e "$STNDT" " rsync a retourné ${retour_rsync}"
    echo
  else echo -e "$ROSE" "connectez le support manquant, DD-O, puis validez par o ? [o/N]";
  read -sn1;
    if [[ $REPLY =~ [yYoO] ]]
      then	echo -e "$ROSE" "\n ======================\n Lancement sauvegarde à\n $Heure le $Date\n ======================\n" ;
      echo -e "$ROSE" "\n\n ========================\n Synchronisation en cours\n   sur DD-O\n ========================\n"
#    rsync -avh exclude-from=/home/bernard/MesScripts/MesScripts-Exclusion/exclude --del --backup / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?
    rsync --archive --partial --progress --delete-during --stats --exclude="dev" --exclude="lost+found"  --exclude="/media" --exclude="mnt" --exclude="/run" --exclude="/proc" --exclude="/sys" --exclude="tmp" / /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?

#        rsync --archive --partial --progress --delete-during --stats /home /media/bernard/DD-O/ 2>> "$backup"; retour_rsync=$?
      else echo -e "$ROUGE" "\n !!! abandon sauvegarde sur support DD-O/ absent !!!\n";
    fi
fi

if [ -s "$backup" ]; 
then date >> "$backup";
fi

	Heure=$(date +%T)
	echo -e "$VERT" "============================\n Sauvegarde DD-O terminée à\n    $Heure le $Date\n ============================\n"
	echo -e "$STNDT"
# ---- fin du script ----
tel qu'il est là, ça fonctionne, puisque j'ai commenté la ligne "déclaration au path" !
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour

Dans la liste des répertoires à exclure,
j'ajouterai aussi les répertoires ~/.cache et /var/cache/apt
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

cb821@perluce.fr a écrit : 16 mai 2022, 19:22 je réponds partiellement, en faisant "autre chose"..
ça veut dire quoi ???

cb821@perluce.fr a écrit : 16 mai 2022, 19:22 je te, vous montre le script entier,...
Je t'ai dit que je n'allais pas débogué ton script :003:



cb821@perluce.fr a écrit : 16 mai 2022, 19:22 # rsync -avh exclude-from=/home.....

ça c'est faux !

j'ai déjà écrit au moins 3x le libellé de cette option,
si tu ne prêtes pas attention à ce qu'on écrit et que tu ne consultes pas le manuel pour t’assurer de la syntaxe,
... on ne peut rien pour toi :sad:


On sait bien qu'une connerie répétée des milliers de fois dans le monde de la com devient une vérité,
mais là ça ne va pas le faire.

Donc ne t'étonne pas si ça ne fonctionne pas.
**Simple Utilisateur** -- Debian stable - XFCE
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

dezix a écrit : 16 mai 2022, 23:39
cb821@perluce.fr a écrit : 16 mai 2022, 19:22 je réponds partiellement, en faisant "autre chose"..
ça veut dire quoi ???
que je fais autre chose que de l'informatique... :wink:
dezix a écrit : 16 mai 2022, 23:39
cb821@perluce.fr a écrit : 16 mai 2022, 19:22 je te, vous montre le script entier,...
Je t'ai dit que je n'allais pas débogué ton script :003:
je te l'ai montré, parce que tu disais que des bouts de scripts étaient difficiles à comprendre !
dezix a écrit : 16 mai 2022, 23:39
cb821@perluce.fr a écrit : 16 mai 2022, 19:22 # rsync -avh exclude-from=/home.....

ça c'est faux !

j'ai déjà écrit au moins 3x le libellé de cette option,
si tu ne prêtes pas attention à ce qu'on écrit et que tu ne consultes pas le manuel pour t’assurer de la syntaxe,
... on ne peut rien pour toi :sad:


On sait bien qu'une connerie répétée des milliers de fois dans le monde de la com devient une vérité,
mais là ça ne va pas le faire.

Donc ne t'étonne pas si ça ne fonctionne pas.
comme tu le vois, je suis passé et rapassé dessus, en ne "voyant" pas l'oublie des guillemets... !

je viens de rectifier le script avec les guillemets, et le répertoire média se remet...

je vais continuer à faire comme je faisais, en mettant les exclusions sur ligne et non dans un fichier, je n'ai pas trouvé de tuto même en anglais, qui explique les déclarations path, qui signifie chemin... ça devrait pourtant le faire... mais bah, c'est ainsi, j'évite de me mettre la rate au court bouillon, il y a des choses plus importantes que ce script :wink:

Merci à Toutes et Tous pour votre aide, je laisse en l'état :good:
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

cb821@perluce.fr a écrit : 17 mai 2022, 09:19 comme tu le vois, je suis passé et rapassé dessus, en ne "voyant" pas l'oublie des guillemets... !
Il n'y a pas que les guillemets,
il y a surtout le 2 tirets qui manquent.

La syntaxe des options longues est : --option-longue



Je te l'ai déjà écrit aussi : quand on a un petit niveau, il faut faire simple, lisible et commenté.

Aérer et commenter pour le rendre plus lisible, donc plus facile de réviser ton code.

À chaque étape demande toi si c'est vraiment utile ou pas,
si ça pourrait s'écrire plus simplement (avec une autre commande peut-être).

Relire ATTENTIVEMENT sans présumer que c'est correct.

Vérifier dans les manuels à chaque petit doute (paranoïa est mon amie).


Pour des exemples, il y en a plein sur la toile dont : ABS-Guide
qui est aussi disponible dans un paquet : apt install abs-guide

:191: :006:
**Simple Utilisateur** -- Debian stable - XFCE
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

Merci pour ABS-guide que j'ai installé, mais que je ne retrouve pas, même avec catfish...?

Encore merci :wink: :006:
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour

Si tu as les yeux trop sensibles aux fonds trop blancs,
tu peux le lire sur fond sombre en suivant ce lien
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

:006:
je te remercie MicP :wink:

mais, comme je l'ai chargé, il est situé où ?
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour

Une fois le paquetage abs-guide installé,
lance la ligne de commande suivante :

Code : Tout sélectionner

x-www-browser /usr/share/doc/abs-guide/html/index.html
cb821@perluce.fr
Membre
Membre
Messages : 39
Inscription : 16 avr. 2022, 09:55
Status : Hors-ligne

:006:
MicP a écrit : 18 mai 2022, 07:06 Bonjour

Une fois le paquetage abs-guide installé,
lance la ligne de commande suivante :

Code : Tout sélectionner

x-www-browser /usr/share/doc/abs-guide/html/index.html
ok, merci !

je lis qu'il est toujours non traduit... aussi, je vais rester sur la version en ligne, car chromium peut me le traduire :wink:

Encore merci :good:
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Répondre