[mv] mv avec exclusions (résolu)

Applications, problèmes de configuration réseau
NY152
archer
Messages : 106
Inscription : sam. 28 sept. 2013, 00:35

[mv] mv avec exclusions (résolu)

Message par NY152 »

Bonjour,

Je cherche une solution (j'ai trouvé tout et n'importe quoi) pour déplacer un backup sur un autre média.

Comme c'est des données importantes, je ne peux pas non plus m'amuser à faire des tests dessus.

En gros, j'ai une grande arborescence à déplacer et dans chaque dossier que composent cette dernière, j'ai un dossier .tmp à omettre. Si optionnellement, je peux omettre 1 ou 2 noms de fichiers (nom de fichier identique aussi) dans tous les répertoires, ça serait Byzance !

Si quelqu'un sait quelles est la commande qui me permettra d'arriver au résultat que je recherche, j'en serai ravi ^^

Par avance, merci
Dernière modification par NY152 le mar. 16 févr. 2021, 23:17, modifié 1 fois.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [mv] mv avec exclusions

Message par FoolEcho »

Salut,

mv seul n'est pas capable de faire une telle exclusion à ma connaissance.

De là tu as foule d'options:
* rsync : comprend une option pour exclure ce que tu veux de la copie (--exclude=PATTERN).
* find + mv : permet de filtrer en amont avant d'exécuter une commande (mv ici) sur la liste retenue (pour exclure ce sera du style ! -path '.tmp').
* mv suivi de find + option delete ou commande rm : faire un mv normal puis un find portant sur les .tmp/ couplé à --delete ou exec rm.

rsync est de loin le plus abordable syntaxiquement parlant par rapport aux options impliquant find. La moins dangereuse de de fait.

Vu que ces données sont importantes... il est important d'en avoir une copie... copie sur laquelle tu peux tester. :mrgreen:
«The following statement is not true. The previous statement is true.» :nage:
NY152
archer
Messages : 106
Inscription : sam. 28 sept. 2013, 00:35

Re: [mv] mv avec exclusions

Message par NY152 »

C'est la première des copies (qui doit être déplacée) pour en effectuer une autre qui partira sur un autre site mais tu es gentil mais m'amuser à faire une copie de 10 To juste pour tester, ça va aller ^^

En fait find ne ferait qu'enfoncer une porte ouverte TOUS les dossiers de l'arborescence ont un dossier .tmp (mais j'avoue c'est pas forcément le cas de certains fichiers). De plus les dossier .tmp doivent rester sur la sourceet rien du reste (à par certaines exceptions que je veux appliquer à quelques fichier aussi)

L'option rsync est peut être la plus abordable mais les données ne sont pas déplacées, juste dupliquées, elles DOIVENT être déplacées.
NY152
archer
Messages : 106
Inscription : sam. 28 sept. 2013, 00:35

Re: [mv] mv avec exclusions

Message par NY152 »

Si je fais un :

Code : Tout sélectionner

rsync -zarvh --progress --remove-source-files --exclude=".tmp" --exclude="_tmp.tar.bz2" /source_du_backup /destination_du_backup
Ai-je une chance d'avoir ce que je cherche ?

Après, là où je ne suis pas serein c'est dans l'option --remove-source-files (option que j'ai trouvé dans des exemples sur le net mais dans le man il n'y a que --remove-sent-files (je présume que c'est la même chose ?)), cette option supprime les éléments un à un QUE si les éléments copiés n'ont pas générés d'erreurs ou tout est supprimé à la fin du processus de copie ?

Le processus s'arrête-t-il en cas d'erreur ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [mv] mv avec exclusions

Message par benjarobin »

Dans le man il y a bien --remove-source-files
This tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have been successfully duplicated on the receiving side.
...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
NY152
archer
Messages : 106
Inscription : sam. 28 sept. 2013, 00:35

Re: [mv] mv avec exclusions

Message par NY152 »

C'était pas trop la question ^^
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [mv] mv avec exclusions

Message par FoolEcho »

NY152 a écrit : mar. 16 févr. 2021, 16:20 C'est la première des copies (qui doit être déplacée) pour en effectuer une autre qui partira sur un autre site mais tu es gentil mais m'amuser à faire une copie de 10 To juste pour tester, ça va aller ^^
Ah... Peut-être baisser le sarcasme d'un ton et réfléchir 2 minutes ou lire le man : par exemple en ne testant que sur une partie de tes données (c'est-à-dire sur une structure similaire en plus, pas forcément des données réelles)...
Avec rsync tu as également l'option --list-only pour juste afficher la liste et ainsi la contrôler avant de lancer vraiment la commande.
Ou mieux : --dry-run pour simuler (aucun changement ne sera effectué).
NY152 a écrit : mar. 16 févr. 2021, 16:20 En fait find ne ferait qu'enfoncer une porte ouverte TOUS les dossiers de l'arborescence ont un dossier .tmp (mais j'avoue c'est pas forcément le cas de certains fichiers). De plus les dossier .tmp doivent rester sur la sourceet rien du reste (à par certaines exceptions que je veux appliquer à quelques fichier aussi)
Et alors ? find filtre les fichiers qui t'intéressent (donc moins ceux que tu exclues) et tu fais ce que tu veux de cette liste, en l'occurrence les déplacer. Le reste ne bougera pas.
Et comme vu ensuite, rsync peut très bien agir de même et supprimer la source...
NY152 a écrit : mar. 16 févr. 2021, 17:32 Après, là où je ne suis pas serein c'est dans l'option --remove-source-files (option que j'ai trouvé dans des exemples sur le net mais dans le man il n'y a que --remove-sent-files (je présume que c'est la même chose ?)), cette option supprime les éléments un à un QUE si les éléments copiés n'ont pas générés d'erreurs ou tout est supprimé à la fin du processus de copie ?

Le processus s'arrête-t-il en cas d'erreur ?
C'est dans le man que t'a pointé benjarobin : la suppression de la source n'a lieu que si le fichier a pu être correctement copié sur sa destination (pas d'erreur I/O). Attention car cela ne concerne pas les répertoires.
Le processus tentera d'aller au bout normalement, en sortie il t'indiquera un code d'erreur le cas échéant ainsi que les fichiers qui auront posé des problèmes, sauf s'il y a erreur avant même de commencer le traitement bien sûr (tu auras sans doute intérêt à rediriger la sortie de la commande vers un fichier de log).
NY152 a écrit : mar. 16 févr. 2021, 17:32 Si je fais un :

Code : Tout sélectionner

rsync -zarvh --progress --remove-source-files --exclude=".tmp" --exclude="_tmp.tar.bz2" /source_du_backup /destination_du_backup
Ai-je une chance d'avoir ce que je cherche ?
A priori oui. Comme dit plus haut, tu peux simuler l'exécution avec --dry-run.
Faut te méfier aussi si tu as des liens symboliques, pareil y a des options pour les préserver. Idem pour les permissions (d'après tes options, je crois que tu préserves à peu près tout, donc ça paraît ok).
«The following statement is not true. The previous statement is true.» :nage:
NY152
archer
Messages : 106
Inscription : sam. 28 sept. 2013, 00:35

Re: [mv] mv avec exclusions

Message par NY152 »

Merci pour ces information, ça va m'aider !

Par contre, pour le sarcasme, je ne suis pas d'accord. Juste un peu d'humour, par contre toi en me prenant de haut parce que Mr semble tout savoir, là on peut en parler ^^

Du coup là c'est du sarcasme !

La prochaine fois que tu interviens dans un thread fais preuve de plus de respect et de moins de condescendance, sans rancune :)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [mv] mv avec exclusions

Message par benjarobin »

NY152 a écrit : mar. 16 févr. 2021, 23:16La prochaine fois que tu interviens dans un thread fais preuve de plus de respect et de moins de condescendance, sans rancune :)
Ah oui, quand même... FoolEcho a au contraire été très patient, à fait une réponse très construite et constructive, suite à tes messages qui été "sarcastiques". Je suis dépité...
Si tu te trouves attaqué/vexé car FoolEcho et moi même ont pointé du doigt (très gentiment ici) le fait que tu n’ai manifestement pas vraiment cherché à lire le man, c'est un peu triste :(
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
NY152
archer
Messages : 106
Inscription : sam. 28 sept. 2013, 00:35

Re: [mv] mv avec exclusions (résolu)

Message par NY152 »

Il a fait une réponse et je l'ai remercié pour ça, en revanche, les attaques gratuites, je suis contre.

Le sujet ayant été résolu, passons à autre chose dans la bonne humeur !
Verrouillé