J'utilise Ubuntu 12.04 comme référentiel et j'aimerais afficher une barre de progression lors de l'utilisation de la fonction rsync
à partir de la ligne de commande. J'ai essayé l'option suggéré dans cet article ( -P
), mais je préfère voir une barre de progression et ne pas utiliser Grsync. J'utilise rsync -P source dest
actuellement.
Réponses
Trop de publicités?Rsync dispose d'un --info
qui peut être utilisée pour afficher non seulement la progression actuelle, mais aussi le taux de transfert et le temps écoulé :
--info=FLAGS fine-grained informational verbosity
L'explication de son utilisation se trouve sous la rubrique -P
dans la page de manuel :
-P The -P option is equivalent to --partial --progress. Its purpose is to
make it much easier to specify these two options for a long transfer that
may be interrupted.
There is also a --info=progress2 option that outputs statistics based on
the whole transfer, rather than individual files. Use this flag
without outputting a filename (e.g. avoid -v or specify --info=name0)
if you want to see how the transfer is doing without scrolling the screen
with a lot of names. (You don’t need to specify the --progress
option in order to use --info=progress2.)
Donc ce qui suit :
rsync -r --info=progress2 --info=name0 "$src" "$dst"
Les résultats suivants sont produits et mis à jour en permanence :
18,757,542,664 100% 65.70MB/s 0:04:32 (xfr#1389, to-chk=0/1510)
Notez que lorsque le transfert commence, le nombre total de morceaux, et donc la progression actuelle, peut changer lorsque l'option récursive est utilisée, car d'autres fichiers sont découverts pour la synchronisation.
Que pensez-vous de ça ?
rsync_param="-av"
rsync "$rsync_param" a/ b |\
pv -lep -s $(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)
-
$rsync_param
Évite la double saisie des paramètres
-
$(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)
Détermine le nombre d'étapes à effectuer.
-
a/ b
-
a/
est la source -
b
est la cible
-
Ouais, fais ce que Jon a dit : utiliser le --info=progress2
option. Mais, que dois-je faire si ma version de rsync est trop ancienne et ne supporte pas cette option ? Réponse : mettez à jour rsync !
Voici comment construire rsync
à partir des sources sur Ubuntu
(testé sur Ubuntu 16.04)
-
Téléchargez la dernière version de rsync : https://download.samba.org/pub/rsync/src/ . Ex : "rsync-3.1.3.tar.gz". Sauvegardez-le dans un répertoire SANS AUCUN ESPACE pour vous assurer qu'il se construit correctement.
-
Dans votre explorateur de dossiers, cliquez avec le bouton droit de la souris et choisissez "Extraire ici".
-
Entrez le dossier extrait (ex : "rsync-3.1.3")
-
Faites un clic droit sur l'écran dans votre gestionnaire de dossiers et choisissez "Ouvrir dans le terminal". Vous pouvez également effectuer les étapes 2 à 4 manuellement sur la ligne de commande. En fin de compte, il vous suffit d'être
cd
dans ce répertoire extrait contenant lersync
code source. -
Vérifiez la version actuelle de
rsync
. Notez-le afin de pouvoir voir plus tard s'il a été mis à jour.rsync --version
-
Installez les outils nécessaires :
sudo apt update sudo apt install yodl
-
Construire :
./configure make sudo make install
-
Assurez-vous qu'il a été mis à jour :
rsync --version
Exemple de sortie :
$ rsync --version
rsync version 3.1.3 protocol version 31
Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, no ACLs, xattrs, iconv, symtimes, prealloc
rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
-
Recherchez "progress2" dans les pages du manuel. Vous aurez maintenant accès au
--info=progress2
option :man rsync
...puis appuyez sur /
clé et type progress2
; appuyez sur Enter pour le rechercher ; appuyez sur n
pour la correspondance 'n'ext jusqu'à ce que vous trouviez l'entrée que vous recherchez :
Il existe également un
--info=progress2
qui produit des statistiques basées sur l'ensemble du transfert, plutôt que sur des fichiers individuels. Utilisez ce drapeau sans sortir un nom de fichier (par exemple, éviter-v
ou spécifier--info=name0
) si vous voulez voir comment se déroule le transfert sans faire défiler l'écran avec un grand nombre de noms. (Vous n'avez pas besoin de spécifier l'option--progress
afin d'utiliser l'option--info=progress2
.)
Voir aussi :
- [ma réponse] "Comment utiliser rsync" : https://superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264
Références partielles :
- Réponses précédentes
- Plus de réponses