792 votes

Comment suivez-vous les progrès de dd ?

dd est une merveille. Il vous permet de dupliquer un disque dur sur un autre, de remettre complètement à zéro un disque dur, etc. Mais une fois que vous lancez un dd commande, il n'y a rien pour vous informer de sa progression. Il reste juste à côté du curseur jusqu'à ce que la commande se termine. Alors comment suivre la progression de dd ?

893voto

phoibos Points 19941

Mise à jour 2016 : Si vous utilisez GNU coreutils >= 8.24 (par défaut dans Ubuntu Xenial 16.04 et plus), consultez la méthode 2 ci-dessous pour une autre façon d'afficher la progression.


Méthode 1 : En utilisant pv

Installer pv et le mettre entre l'entrée et la sortie seulement dd des commandes.

Nota : vous ne pouvez pas l'utiliser lorsque vous avez déjà commencé dd .

De la description du paquet :

pv - Pipe Viewer - est un outil basé sur un terminal permettant de surveiller les la progression des données dans un pipeline. Il peut être inséré dans n'importe quel pipeline normal entre deux processus pour donner une indication visuelle de la vitesse à laquelle les données passent, le temps qu'il a fallu, la proximité de l'achèvement. l'état d'avancement du processus et une estimation du temps qu'il reste à parcourir jusqu'à l'achèvement du processus. l'achèvement.

Installation

sudo apt-get install pv

Ejemplo

dd if=/dev/urandom | pv | dd of=/dev/null

Salida

1,74MB 0:00:09 [ 198kB/s] [      <=>                               ]

Vous pouvez spécifier la taille approximative avec l'option --size si vous voulez une estimation du temps.


Exemple Supposons qu'un disque de 2GB soit copié depuis /dev/sdb

Commande sans pv serait :

sudo dd if=/dev/sdb of=DriveCopy1.dd bs=4096

Commande avec pv :

sudo dd if=/dev/sdb | pv -s 2G | dd of=DriveCopy1.dd bs=4096

Sortie :

440MB 0:00:38 [11.6MB/s] [======>                             ] 21% ETA 0:02:19

Autres utilisations

Vous pouvez bien sûr utiliser pv directement pour diriger la sortie vers stdout :

pv /home/user/bigfile.iso | md5sum

Salida

50,2MB 0:00:06 [8,66MB/s] [=======>         ] 49% ETA 0:00:06

Notez que dans ce cas, pv reconnaît automatiquement la taille.


Méthode 2 : Nouveau status option ajoutée à dd (GNU Coreutils 8.24+)

dd dans GNU Coreutils 8.24+ (Ubuntu 16.04 et plus récent) a obtenu un nouveau status pour afficher la progression :

Ejemplo

dd if=/dev/urandom of=/dev/null status=progress

Salida

462858752 bytes (463 MB, 441 MiB) copied, 38 s, 12,2 MB/s

557voto

James Points 15928

De Comment faire : Suivre les progrès de dd

Vous pouvez suivre l'évolution de dd une fois qu'il est en cours d'exécution, sans l'arrêter en utilisant la fonction kill pour envoyer un signal au processus.

Après avoir commencé dd Ouvrez un autre terminal et entrez soit :

sudo kill -USR1 $(pgrep ^dd$)

Ou si vous êtes sous BSD ou OS X :

sudo kill -INFO $(pgrep ^dd$)

Cela permettra d'afficher la progression dans le dd sans arrêter le processus (en l'imprimant sur son flux stderr). Par exemple :

# dd if=/dev/urandom of=rando bs=1024 count=1048576
335822+0 records in
335821+0 records out
343880704 bytes (344 MB, 328 MiB) copied, 6.85661 s, 50.2 MB/s

Si vous souhaitez recevoir des mises à jour régulières de l'initiative dd la progression, puis entrer :

watch -n5 'sudo kill -USR1 $(pgrep ^dd$)'

watch va sonder le dd toutes les -n secondes ( -n5 = 5 secondes) et le signaler sans l'interrompre.

Notez les guillemets simples appropriés dans les commandes ci-dessus.

116voto

JSBach Points 1325

Quelques exemples pratiques d'utilisation avec pv et moins de frappe ou plus de progrès que les autres réponses :

Vous devez d'abord installer pv avec la commande :

sudo apt-get install pv

Voici quelques exemples :

pv -n /dev/urandom | dd of=/dev/null
pv -tpreb source.iso | dd of=/dev/BLABLA bs=4096 conv=notrunc,noerror

Note : le premier échantillon comporte 5 caractères de moins que le second. dd if=/dev/urandom | pv | dd of=/dev/null .

Et mon préféré pour cloner un lecteur de disque (remplacez X par des lettres de lecteur) :

(pv -n /dev/sdX | dd of=/dev/sdX bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0

screenshot

source : http://www.cyberciti.biz/faq/linux-unix-dd-command-show-progress-while-coping/

Aussi pour m'archiver.

75voto

davidDavidson Points 866

Dans un souci d'exhaustivité :

Version 8.24 de la GNU coreutils inclut un patch pour dd introduisant un paramètre pour imprimer la progression.

Le commit introduisant ce changement a le commentaire :

dd : nouveau status=progress niveau pour imprimer les statistiques périodiquement

De nombreuses distributions, dont Ubuntu 16.04.2 LTS utiliser cette version.

71voto

01010101 Points 727

Utilice Ctrl + Shift + T tandis que dd est en cours d'exécution, et il affichera la progression (en octets) :

load: 1.51  cmd: dd 31215 uninterruptible 0.28u 3.67s
321121+0 records in
321120+0 records out
164413440 bytes transferred in 112.708791 secs (1458745 bytes/sec)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X