Barre de progression pour la commande scp

92

Est-il possible d'afficher une barre de progression lors de la copie d'un serveur vers un serveur local (ou inversement) scp?

Abdul Shajin
la source
Maintenant, j'obtiens le pourcentage. Mais j'ai besoin d'une barre de progression.
Abdul Shajin
il y a un script mais je ne sais pas comment le faire fonctionner
Uri Herrera
1
Vous pourrez peut-être modifier ce script pour une barre de progression pour 'cp' ': chris-lamb.co.uk/2008/01/24/…
Rinzwind
scp -r ne montre pas la barre de progression mais donne un pourcentage de chaque fichier
spyderman4g63

Réponses:

94

Je ne pense pas que cela puisse être fait avec scp. La dernière fois que j’avais besoin de quelque chose comme ceci, c’est-à-dire que les progrès étaient visibles, j’avais utilisé la rsyncsolution Il montre les progrès d'une manière semblable à un bar. Voyez si cela fonctionne pour vous.

Vous devrez utiliser l' --progressoption de rsync. Vous pouvez utiliser la commande suivante:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/
binW
la source
1
J'allais publier quelque chose de similaire, mais lorsque je l'ai testé, je viens de recevoir 2741851 0% 700.39kB/s 0:17:21et aucune barre de progression graphique (ce que je pense que l'OP veut).
Oli
1
@ Oli: Je pense que c'est parce que vous copiez un très petit fichier. La copie se termine avant que rsync puisse afficher des progrès. Si vous copiez un fichier plus volumineux, vous devriez obtenir une barre de progression.
binW
1
Pour tous ceux qui recherchent cp avec une barre de progression, rsync fonctionne très bien localement, cela répond donc à cette question également! (Il suffit de laisser le -e ssh user@remote-system:pour une copie locale et man rsyncexplique les nombreuses, beaucoup d'options)
sage
1
Si vous souhaitez vous connecter à un port SSH différent de celui par défaut, vous pouvez utiliser quelque chose du genrersync -avz --progress -e 'ssh -p 1223' [email protected]:/foobar.txt ./my-local-copy.txt
damd
4
pourquoi utiliser rsync pendant que vous avez juste besoin d'ajouter -vàscp
Samir Sabri
64

Le -vcommutateur fonctionne bien.

Exemple:

5% 9232KB 357,5KB / s 07:48 ETA

PJ Brunet
la source
6
C'est réponse correcte.
int_32
Cela devrait être la bonne réponse! pourquoi déranger et installer rsync
Samir Sabri
3
Cela ne semble pas fonctionner lors de l'utilisation -3.
Fuero
1
@fuero man scp: "Les -3copies entre deux hôtes distants sont transférées via l'hôte local. Sans cette option, les données sont copiées directement entre les deux hôtes distants. Notez que cette option désactive l'indicateur de progression. "
The Guy with The Hat
4

Je ne sais pas comment faire cela en ligne de commande. Je suis sûr que c'est possible, mais il existe une méthode graphique pour le faire.

Nautilus (le navigateur de fichiers par défaut sous Ubuntu) peut monter des serveurs ssh / sftp. Ils agissent ensuite comme un système de fichiers local et vous pouvez copier les fichiers comme vous le feriez normalement. Et vous obtenez la barre de progression habituelle que vous auriez avec une copie normale.

Regardez sous le Filemenu pourConnect to server...

Oli
la source
4

À partir de 2018, les progrès et l'ETA sont affichés par défaut et pourraient être désactivés par -q

Milan Kerslager
la source
pas sur macos, lol!
Drachenfels le
Voulez-vous dire par progrès global ou par fichier? Je ne le vois que fichier par fichier dans ma toute nouvelle version de Debian 9.
mazunki