Problème restauration racine avec Rsync

Bonjour,
je sauvegarde sur un dd interne ma racine avec cette commande rsync en root :
rsync -Pavhbx --stats --fsync --exclude-from=$EXCLUDE $QUOI $OU
Malgrè le fait d’être executer en root mes dossiers sauvegardés bin boot etc appartiennent à mon user.
Je viens de restaurer avec la commande toujours en root :
rsync -Pavhbx --stats --fsync --exclude-from=$EXCLUDE $OU $QUOI
Je me retrouve avec les dossier systéme à la racine avec user et non en root.
Du coup j’ai l’erreur su: impossible de configurer les groupes: Opération non permise
Pourriez-vous m’expliquer d’ou viens mon erreur dans la gestion de la sauvegarde?
Merci.
Cordialement.

Une explication tordue serait que le dossier vers lequel tu sauvegardes aie le setgid, mais c’est quand même peu probable…

j’ai créer de mémoire il me semble le dossier de sauvegarde et j’ai donnée le chown 1000:1000 mais le rsync en root doit faire sauter le chown 1000:1000 non ?
comment verrifier l’histoire du setgid ?

ls -l il me semble.

Pourquoi ce chown 1000:1000 ?
Par ailleurs à partir du moment où tu écris dedans en root les fichiers appartiennent à root, mais le dossier lui-même est toujours celui de l’utilisateur qui a l’UID 1000.

Enfin cela dépasse un peu mon expertise mais es-tu sûr que l’erreur « impossible de configurer les groupes » vient de ça ?
Normalement root a tous les droits…

Bonjour,

Afin d’éviter de passer du temps inutile sur un problème XY:

  • pourquoi vouloir sauvegarder toute la racine? Pour sauvegarder le système? une image est bien plus efficace.
  • l’option -a correspond en fait à -rlptgoD. je ne suis pas sur que ce soit une bonne idée pour restaurer un système ('ce qui revient à répondre au préalable à la première question).
  • l’option -a ne préserve pas les ACLs, les xattrs, les atime, les crtimes ni les hardlink. Idem voir première question.

Bonjour vous deux et merci.
Je vais essayer de vous expliquez le comment du pourquoi.
je cherche la meilleure solution pour faire des sauvegardes de mon systéme et de mes données utilisateur.
Journaliére au boot pour mon user et tous les 7 jours pour le systeme sur
une sauvegardes en interne sur un dd dédié au sauvegardes
une sauvegardes sur un autre pc chez moi aussi en décalage en complément
Rdiif-backup semble plus efficace que rsync auquel j’ajoute --backup-dir= pour restaurer.
Mais je ne sais pas comment faire pour retrouver un dossier/fichiers effacé avec rdiff-backup
Rsync avec --backup-dir est plus visible pour moi je sais ou chercher et au pire un cp je remet en place.
Mais là rien ne va plus lol
Zargos ben je me dis qu’en cas de souci c’est plus simple pour repartir soit à zero en remettant en place une sauvegarde soit en refaisant une installation propre et cp de fichiers modifier dans /etc par exemple
Tu dis qu’une image est plus efficace pourquoi ?
si c’est plus efficace comment faire ?
Voilà ce que je cherche à faire
maintenant le pb de rsync
Bon je sais pas ou j’ai fait une m**** mais rsync n’a pas le comportemetn attendu !!!
Soit c’est moi qui comprend pas ( fort possible )le comportement de rsync
Soit la création de mon dossier de sauvegarde a un pb avec les user et permission comme indiqué par Lien_Rag
je fait un rsync --backup-dir= d’un dossier ca copie source vers destination
je supprime un dossier et ou un fichier dans source il ne le supprime pas dans destination rien dans bakupdir
je modifie un fichier la il le mets bien dans bakupdir l’ancienne version et dans destination la version modifiée.
merci de m’aider !!!

C’est un serveur ou un poste de travail, si c’est le deuxième choix oublie rsync et utilise dejadup ou timeshift ce sera plus facile pour toi.

Si c’est un serveur tu as des outils pratique comme Borg et Restic qui s’appuie sur rsync et te permettront d’être bien plus fin dans ta façon de sauvegardé.

Maintenant si tu cherche absolument à scripter via rsync une sauvegarde de ta racine tu peux t’orienter plutôt dans la catégorie Programmation de ce forum il y a quelques exemples.
Ne pas oublier dans le cas d’une automatisation d’avoir une méthode de contrôle, d’avertissement en cas d’échec et de vérifier malgré tout régulièrement que ce soit exploitable.

Bonjour Clochette,
c’est un poste de travail.
pour les contrôles oui je fait avec des if dans le script !!!
Pour Rsync je viens de comprendre avec l’option --delete :joy:
je fait se que j’aurais du faire au depart !!!
tester diverses options et voir le résultats et choisir se qui me correspond le mieux.
j’ai vu pour faire une image avec partition manager de kde mais c’est gourmand en espace disque vu que ca créer une image de la partition racine qui fait 30 go j’ai une image de 30 go et impossible à faire en live car la partition doit etre démonté.

Non… « rsync » garde les IDs des dossiers copiés sur la version « collé », et les mêmes dates - c’est bien son rôle (entre autres), contrairement à la commande « scp ».

-P same as --partial --progress (Par défaut, rsync supprimera tout fichier partiellement transféré si le transfert est interrompu.)
-a archive mode; equals -rlptgoD (no -H,-A,-X)
-v increase verbosity
-h output numbers in a human-readable format
-b make backups (see --suffix & --backup-dir)
-x don’t cross filesystem boundaries (ne franchissez pas les limites du système de fichiers)
--stats give some file-transfer stats
--fsync This getOps don’t exist demande au côté récepteur de synchroniser chaque fichier terminé.

Donc l’archive mode -a ou -rlptgoD signifie :

-r recurse into directories
-l copy symlinks as symlinks (ne recopie pas les fichiers de la « directory/file » de destination du lien symbolique)
-p preserve permissions
-t preserve modification times
-g preserve group
-o preserve owner (with super-user only)
-D same as --devices --specials
--devices preserve device files (with super-user only)
--specials preserve special files

https://linux.die.net/man/1/rsync

For once I share this tutorial with you : Rsync : le meilleur des systèmes de sauvegarde * Security * OS GNU/Linux *…

Greets,
Romain :slight_smile:

Man rsync:

 --archive, -a
              This  is  equivalent  to  -rlptgoD.   It  is a quick way of saying you want recursion and want to preserve almost everything.  **Be aware that it does not include preserving ACLs (-A), xattrs (-X),**
**              atimes (-U), crtimes (-N), nor the finding and preserving of hardlinks (-H).**

              The only exception to the above equivalence is when --files-from is specified, in which case -r is not implied.

Tu confonds avec -A :slight_smile:

Bon du coup après divers test je comprend mieux le fonctionnement de rsync et rdiff-backup car pour sauvegarder peut importe ca le fait mais ca se complique quand on doit restaurer !!!
Je vais ouvrir un autre sujet pour connaître votre avis sur la méthode que je dois utilisé.
Merci

ZW3B
–fsync fsync every written file
https://man7.org/linux/man-pages/man1/rsync.1.html
ou man rsync

Le meilleur moyen reste le clone. pas de prise de tete, et ca marche facilement. Même avec ‹ dd › c’est bien plus sur qu’avec rsync.
Car ici on ne parle d’une simple restauration fichier, mais de celui d’un système entier.

Zargos
je veux bien mais le clônage fait perdre énormément de place ou j’ai pas compris quelque chose !!!
je peux faire une sauvegarde du disque avec partition manager sur kde masi ca prend exactement la place de la dite partition.
Ma partition systéme fait 30 GO mais j’en utilise 8 dd peux faire un clône de seulement 8 go plutôt que 30 ?

dd if=/dev/partitiondedepart of=/dev/partitiondestination bs=1M

Sinon à la limite du cp- a ou du rsync --numeric-ids --devices --specials -A -X -H -W -a

Dans tous les cas je rappel qu’il y a des outils faisant du très bon travail pour de la sauvegarde/restauration il est inutile de vouloir réinventer la roue sur un poste de travail tel que DejaDup et Timeshift.

Bonjour

Avant de lancer la commande dd qui te permettrait de créer une copie d’une de tes partitions,
utilise GParted pour réduire la taille de la partition, mais ne la réduit pas au minimum possible, laisse toujours un peu plus d’espace libre (environ 1GB) que le minimum possible.
Il sera ensuite facile de redonner à cette partition sa taille originale.

Mais la réduction de la taille de la partition n’est possible que si le type de système de fichiers créé dans cette partition le permet.

Quoi qu’il en soit, pour faire ce genre d’opération, il faut bien faire attention à ne pas faire de confusion entre disque, partition, système de fichiers et autre système RAID, de chiffrement, et de gestion de volume logique.

comme dit @Clochette , il faut utiliser ce qui existe, certains outils de sauvegardes font du cloning mais en ne prenant que ce qui est utilisé, et compressé/dé-dupliqué.
Personnellement je ne sauvegarde pas le système mais uniquement les fichiers de config et les données. Donc exit /sbin, /bin, /usr/bin, edtc…
Si c’est u n poste de travail, seules les partitions utilisateurs ont du sens (pour les package une simple liste des packets installé suffisent), et /etc pour les config.
Après tout dépends où tu as des données (par exemple /var/lib/mysql pour la DB mais vaut mieux utiliser un outils de sauvegarde de base), et etc…

Ok, ok @Zargos !

En fait je parlais des droits Unix standard, et non pas des droits-> Access Control List — Wikipédia
Sinon pour les liens physiques, pour les périphériques -H - ok, je parlais des liens symboliques.

Pour les dates :

crtime : date de création.
atime : date de la dernière lecture.
mtime : date de la dernière modification.
ctime : date de la dernière connexion.

xattrs : Attributs étendus — Wikipédia

Ok, merci pour ces informations.

Romain.

PS : c’est parce que j’ai regardé sur des vielles version :

# rsync --version (sur Debian GNU/Linux 9 (stretch))
rsync  version 3.1.2  protocol version 31
# rsync --version (sur Debian GNU/Linux 10 (buster))
rsync  version 3.1.3  protocol version 31

Je n’ai pas au dessus.

rsync: -U: unknown option

Et rsync -avP -fsync me retourne :

rsync: --fsync: unknown option
rsync error: syntax or usage error (code 1) at main.c(1596) [client=3.1.3]
-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Sinon pour les dates :

root@mail:~ # ls -l zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
-rw-r--r-- 1 root root 244166518 oct.   4  2019 zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz

root@mail:~ # stat zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
  File: zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
  Size: 244166518       Blocks: 476896     IO Block: 4096   regular file
Device: 802h/2050d      Inode: 1310733     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-08-19 11:29:44.063240050 +0200
Modify: 2019-10-04 18:34:18.000000000 +0200
Change: 2020-08-21 14:59:27.774085226 +0200
 Birth: -
root@mail:~ # 

Et puis en récupérant le fichier avec « rsync -a » version 3.1.3 :

root@web:/var/pro/web_public/zimbra # rsync -avP 10.102.0.1:zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz .
root@10.102.0.1's password:
receiving incremental file list
zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
    244,166,518 100%   35.74MB/s    0:00:06 (xfr#1, to-chk=0/1)

sent 43 bytes  received 244,226,252 bytes  15,756,535.16 bytes/sec
total size is 244,166,518  speedup is 1.00

root@web:/var/pro/web_public/zimbra # stat zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
  Fichier : zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
   Taille : 244166518   Blocs : 476888     Blocs d'E/S : 1048576 fichier
Périphérique : 89h/137d Inœud : 208714473   Liens : 1
Accès : (0644/-rw-r--r--)  UID : (    0/    root)   GID : (    0/    root)
 Accès : 2023-08-19 14:38:21.098835482 +0200
Modif. : 2019-10-04 18:34:18.000000000 +0200
Changt : 2023-08-19 14:38:21.214831039 +0200
  Créé : -
root@web:/var/pro/web_public/zimbra #

Çà garde la date de modification « 2019-10-04 18:34:18 » - celle qui est visible dans l’explorateur par exemple. Ils ont, donc ajouté une option :

--atimes, -U             preserve access (use) times

Pour la date d’accès « oui logique, il manquait cette option » :wink:

Côté envoyeur -> Access: 2023-08-19 11:29:44.063240050 +0200
Côté récepteur -> Accès : 2023-08-19 14:38:21.098835482 +0200

Cordialement,
Romain.

Surprenant que l’attention soit focalisée sur rsync, alors que la problèmatique a certainement plus pour origine les droits de « $OU ».
Surprenant de sauver un système root sur un répertoire user, sans plus de précisions sur les droits exacts de « $OU »: les fichiers sont bien backupés, mais pas correctement récupérables, la seule manière de protéger les droits étant de sauver dans un contenant, comme ‹ tar › par exemple.

Sur les systèmes UNIX, Setuid n’a pas d’effet sur les répertoires.

Le fonctionnement de Setgid sur un répertoire est très différent de celui sur les exécutables : si cette propriété est appliquée à un répertoire, tout fichier ou sous-répertoire créé dans ce répertoire parent appartiendra au groupe de celui-ci et non au groupe de l’utilisateur qui crée l’élément.
Ceci est utile par exemple dans un dossier de partage, où l’on souhaite que tous les membres d’un groupe de superviseurs puissent modifier ou supprimer les contributions des membres d’un autre groupe.

Lorsqu’un sous-répertoire est créé, il hérite lui aussi de la propriété Setgid. En revanche, si des sous-répertoires existent déjà au moment de l’ajout du Setgid, ils ne sont pas affectés par celui-ci.
» Setgid pour les répertoires— Wikipédia

Bon courage pour comprendre avec quels droits les fichiers seront récupérés.

1 J'aime

Dans ce cas mieux vaudrais s’assurer d’être sur les bonnes version. C’est plus sur.