Je dois dd
un couple de disques durs de 1 To. Ils prennent plusieurs heures à cloner et je me demandais s’il était possible de savoir à quelle vitesse ils allaient, combien ils avaient fait et combien de temps faudrait-il pour copier le reste.
Tout ce que je peux voir, c'est le terminal avec la commande en cours d'exécution. Quand j’exécute ps -e
au moins, je sais que dd
fonctionne à partir de l’utilisation du processeur indiquée, mais je n’ai aucun moyen de savoir ce qu’il a fait ou combien de temps il faudra pour le terminer.
Ça me rend fou.
Utilisez le programme pv
pour tout flux acheminé afin de voir un rapport en temps réel des données transférées. Il peut être utilisé pour toute application utilisant des tuyaux. C'est également un excellent outil pour voir le taux de transfert vers des éléments tels que l'USB, les disques externes et les ordinateurs en réseau.
dd if=infile | pv > outfile
Ou pour la copie directe, utilisez simplement ceci:
pv infile > outfile
Exemple:
Sudo pv /dev/sda1 > /home/user/sda1.ext4.img
Typique. Quand je demande quelque chose, je trouve alors la réponse (même si je cherchais des heures .. mais comme par magie, je la trouve APRÈS avoir créé la question -.-). Quoi qu'il en soit, pour ce que j'ai vérifié avec dd --help
qui mentionne à la fin de l'aide (je ne peux vraiment pas croire que je n'ai pas vu CELA), ce qui suit:
Sending a USR1 signal to a running `dd' process makes it
print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in
18335302+0 records out
9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
Cela signifie que dans un autre terminal, vous exécuterez la ligne suivante à l'aide de l'ID de processus du DD que vous souhaitez vérifier. Par exemple, dans mon cas, l'ID de processus 4112. Vous pouvez voir l'ID de processus en tapant ps -e
et en recherchant dd ou juste ps -e|grep dd
et en regardant le numéro situé à l'avant. Prenez note de ce numéro, puis tapez dans une autre fenêtre de terminal kill -USR1 4112; sleep 1;
Cela me donnera le temps, les secondes écoulées depuis le début et le nombre de copies. Au moins, maintenant, je sais qu'il faut environ 8 heures pour copier 1 To d'informations à environ 40 Mo/s.
Concernant l'utilisation de kill pour afficher des informations sur un Mac, vous devez lui passer l'indicateur -INFO
à la place de l'indicateur -USR1
. Et rappelez-vous qu’il affiche les informations dans le terminal où votre processus dd est en cours d’exécution. Par conséquent, si vous ouvrez un nouvel onglet pour saisir kill -INFO $PID
(où $PID
est le numéro trouvé à l’aide de ps -e | grep dd
), vous devrez revenir à l’onglet où dd
est en cours d'exécution pour afficher le résultat.
Maintenant, si seulement je pouvais comprendre comment afficher cette sortie en Go ou en Mo au lieu d'octets en clair ...
Il existe déjà un autre dd étendu appelé dcfldd
qui contient de nombreuses choses amusantes pour lesquelles vous demandez http://dcfldd.sourceforge.net/
Sudo apt-get install dcfldd
dd
, vous écrivez dcfldd