Page 1 sur 1

Afficher évolution de la commande

Posté : mer. 5 févr. 2025 23:21
par Genevrier1
Bonjour,

Pour sauvegarder mon "home", j'utilise la commande :

Code : Tout sélectionner

sudo rsync -a /home/michel/ /media/michel/sauveg/home20250127a
Je souhaiterais afficher une barre de progression de la copie...
Qui peut m'aider ?
D'avance merci...

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 02:02
par alain
Bonjour genevrier.

Plusieurs solutions existent.
En premier, je te donne celle avec pv, elle est plus complexe et longue à taper, mais très intéressante et surtout peut te servir pour d'autres commandes que rsync:

Installe la commande pv:

Code : Tout sélectionner

sudo apt update && sudo apt install pv
Puis utilise là comme cela par exemple:

Code : Tout sélectionner

sudo rsync -a /home/michel/ /media/michel/sauveg/home20250127a | pv -l -s $(du -sb /home/michel/ | awk '{print $1}')
Si ça ne te convient pas ou que tu veuilles améliorer la visu de la progression, regarde les divers options de pv dans:

Code : Tout sélectionner

man pv 


Plus simple, mais moins valorisant techniquement. Si tu ne veux pas t'embêter avec pv, dans le man de rsync je vois qu'il existe une option --progress (ligne 3530 du man)
Ce qui donnerait :

Code : Tout sélectionner

sudo rsync -a --progress /home/michel/ /media/michel/sauveg/home20250127a
Cela affiche la progression de chaque fichier en temps réel:
This option tells rsync to print information showing the progress of the transfer. This gives a bored user something to watch.
dixit le man. Donc si t'es "bored" ça te conviendra.

Avec les options tu peux faire des trucs intéressants. ;)
Il faut prendre l'habitude de lire le man d'une commande, souvent il existe une option qui fait ce que l'on cherche. Et pour la progression si pas d'option prévu il y a pv ça marche avec tout ;)

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 08:00
par Armaggion
Il faut savoir que cette barre de progression intégrée à rsync n'est pas fiable sur des arborescences significatives, mais elle a le mérite d'exister.
Pas fiable signifie qu'elle va monter très vite et plafonner dans les 95% le reste du temps.

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 08:04
par alain
Bonjour Armaggion.

Je ne l'ai pas testé, juste vu son existence.
Merci pour l'info ;)

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 08:43
par tioker
Armaggion a écrit : jeu. 6 févr. 2025 08:00 Il faut savoir que cette barre de progression intégrée à rsync n'est pas fiable ...
Bonjour,
Les réponses sont très intéressantes. Je regarderai un jour si besoin.
Mais il faut se rappeler une chose (je pense): une copie peut savoir rapidement quel volume on doit copier et de quelle vitesse de transfert on dispose. rsync ne connait pas le volume de fichiers à synchroniser puisque c'est la destination qui lui dira si il faut mettre à jour ou non. Donc la barre de progression sera toujours indicative, pas vraiment fiable (je pense).

PS: Moi j'utilise rsync de cette manière pour le côté "verbose" et la sauvegarde des fichiers destination mis à jour

Code : Tout sélectionner

rsync -rvaz --backup --suffix=`date +'.%F_%H-%M'`

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 08:49
par Genevrier1
Merci à tous,
J'ai testé la commande d'Alain:!
sudo rsync -a /home/michel/ /media/michel/sauveg/home20250127a | pv -l -s $(du -sb /home/michel/ | awk '{print $1}')
Et ca m'affiche la progression en temps, c'est déjà ça, mais je souhaiterais si possible soit l'affichage en % et/ou l'affichage du temps restant...
et je ne suis pas bien à l'aise avec "man"...
D'avance merci pour un coup de main supplémentaire...

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 10:29
par tioker
Genevrier1 a écrit : jeu. 6 févr. 2025 08:49 D'avance merci pour un coup de main supplémentaire...
Voir ma réponse. Tu n'auras pas bien mieux que ce qu'on t'a dit...(je pense ;) ).
Mais si tu ne veux pas te faire [chi]/[su]er devant ton écran tu peux toujours lancer la commande en détaché genre ...

Code : Tout sélectionner

nohup rsync blablabla .... &
¹

Ne pas oublier le "&" à la fin sans quoi, si tu sors du terminal, le process détaché s'arrêtera aussi (je continue de penser...).
Et mets un log si tu veux savoir ce qui s'est passé.

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 18:46
par Armaggion
La barre de progression ne peut pas être fiable, par définition.

Une barre de progression, c'est la représentation graphique de :
Temps écoulé / Temps nécessaire.

Le temps nécessaire est inconnu puisque c'est seulement après avoir vérifié si un fichier doit être synchronisé que la commande peut calculer le temps nécessaire à la copie. En conséquence, la barre avance au départ assez vite, puis le système réévalue le temps nécessaire et ton 3/4 devient 3/5, puis la copie déroule, arrive à 4/5 et se découvre de nouvelles copies à faire et passe à 4/7, exécute les copies, montre à 6/7 et découvre de nouvelles choses à faire, donc retombe à 6/8, etc. Tu as compris l'idée ;)

Ce n'est pas du bug ou de l'incompétence, c'est juste pas possible, sauf à faire une évaluation préalable exhaustive de tout ce qu'il y aura à faire... ce qui prend un temps inutile, surtout si tu synchronises plusieurs dizaines de gigaoctets pour seulement 4 petits fichiers à synchroniser.

Re: Afficher évolution de la commande

Posté : jeu. 6 févr. 2025 21:53
par alain
Armaggion a écrit : jeu. 6 févr. 2025 18:46 La barre de progression ne peut pas être fiable, par définition.
C'est tout à fait exact... ;)
Mais ça à l'avantage de t'occuper si tu es "bored" comme le dit le man de rsync :mrgreen:
des fois ça va vite, des fois ça ralenti, même des fois on dirait que c'est à l'arrêt...Mais quel suspens! :lol:
C'est toujours mieux qu'un écran noir :l