Rsync: exclure des backups, mais pas de la copie actuelle?

Bonjour,
rsync permet d’éditer un fichier d’exclusion, pour ne pas sauvegarder des types de fichiers, des répertoires… et de garder les fichiers effacés ou modifiés dans un répertoire de backup.

Existe-t-il une solution (via un script bash par exemple) pour copier les répertoires « .git/ » sans les envoyer dans le répertoire de backup?

Bien entendu, le script
1- pourrait se contenter d’effacer ces arborescences dans le fichier de backup du moment, ou
2- pourrait le mettre dans les exclusions, puis dans un 2e temps, relancer rsync sans les exclure ni enregistrer les backup.

mais (je rêve…) une solution plus directe serait-elle envisageable?


La ligne produite par mon script actuel est la suivante:

sudo rsync -auHAXNUi --progress --stats --delete --exclude-from=/media/eric/Tosh2T_2024/ExcludeFile.txt --backup --backup-dir=/media/eric/Tosh2T_2024/25-03-26_19h_38 / /media/eric/Tosh2T_2024/Racine/

Bonjour,
je n’ai pas l’impression qu’on puisse faire ça (je n’ai pas vu d’option permettant d’inclure / exclure des éléments que l’option --backup doit traiter). Ta 2e solution (lancer un 2e rsync) me semble mieux que la première, c’est plus intéressant de n’écrire que ce qui a besoin d’être écrit, plutôt que de tout écrire puis effacer ce qui doit l’être.
En l’occurrence un 2e rsync, sans --backup, et qui ne s’occupe que des répertoires .git.

salut
peux-tu expliquer l’option --backup,stp

       --backup, -b
              With this option, preexisting destination files are renamed as each file is transferred or deleted.  You can control where the backup file goes and what (if any) suffix  gets  appended  using
              the --backup-dir and --suffix options.

              If you don't specify --backup-dir:

              1.     the --omit-dir-times option will be forced on

              2.     the  use  of  --delete  (without  --delete-excluded),  causes  rsync  to add a "protect" filter-rule for the backup suffix to the end of all your existing filters that looks like this:
                     -f "P *~".  This rule prevents previously backed-up files from being deleted.

              Note that if you are supplying your own filter rules, you may need to manually insert your own exclude/protect rule somewhere higher up in the list so that it has a high enough priority to be
              effective (e.g. if your rules specify a trailing inclusion/exclusion of *, the auto-added rule would never be reached).

En gros c’est pour conserver une copie des fichiers (côté destination) avant qu’ils ne soient déplacés / supprimés / modifiés par rsync.

donc si je mets --delete, je garderais quand même le programme? avec l’arbre de répertoires?
et sije le fais deux fois de suite avec le même dossier de backup, ça delete les anciens backup ?

Je ne fais pas ça, mais je pense que c’est bien ce qui se passerait. Mon script crée un nouveau répertoire à chaque lancement (nommé par sa date+horaire).

les répertoires ./git contiennent déjà l’historique complet des fichiers qui lui sont passés, c’est même son rôle, donc c’est inutile d’en faire des backups: le dernier est le plus complet.
(bien sur, on peut toujours faire des dégats avec l’historique de git, mais là on atteint un degré de paranoïa qui dépasse mes besoins — et mes moyens-- !)

Merci à vous : un des mes disques vient juste de me lâcher à moitié, j’ai fais un petit fsck et je me retouve avec un disque complet sous lost+found : tous les dossiers de la racine et quelques uns en plus se sont retrouvés écrits genre #545413 ; j’ai pu les retrouver grâce à ma sauvegarde mais pour être sûr que mes fichiers étaient tous là j’ai fais un backup avec rsync et les mfichiers tordus se sotn retrouvés dans le dossier backup, ce qui m’a peis de vérifier : SUPER MERCI À VOUS.