Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/01/2021, à 13:55

lanfust

[RESOLU]Monitoring de la commande dd

Bonjour,

Quand je copie un disque dur je me sers souvent de la commande dd

J'ai deux questions concernant le monitoring

Pour voir l'avancé de la copie je fais comme ceci

sudo dd if=$source of=$pathToUsb bs=4M conv=fdatasync status=progress

et j'obtiens le message suivant :
2969567232 octets (3,0 GB, 2,8 GiB) copiés, 22 s, 134 MB/s

question :
1- si je veux récupérer uniquement le chiffre des octets comment puis je procéder ?
J'ai ajouté une commande pour le copier dans un fichier mais ce n'est pas trop ce que je veux.

sudo dd if=$source of=$pathToUsb bs=4M conv=fdatasync status=progress > capture.txt 2>&1

S'il y a vait une solution pour copié à la volée le chiffre des octets dans une variable ?

2- quand la copie se termine , dd n'a pas encore fini de s'exécuter puisqu'il fait un sync
Mais là pas de monitoring ;
Y-a-t-il une commande à ajouter qui peut montrer l'avancé de la commande sync ?

Merci pour votre aide

Dernière modification par lanfust (Le 21/01/2021, à 13:58)


Dual boot Windows 11 / Ubuntu 22.04
Créer une clé usb bootable
https://github.com/kramer04/usb_Bootable

Hors ligne

#2 Le 18/01/2021, à 15:13

MicP

Re : [RESOLU]Monitoring de la commande dd

Bonjour


1- si je veux récupérer uniquement le chiffre des octets comment puis je procéder ? …

octetsCopies=$(sudo dd if=$source of=$pathToUsb bs=4M conv=fdatasync status=progress 2>&1 | awk 'END {printf ($0+0)}')

Si cette ligne de commande est dans un script,
il vaudrait mieux que ce soit le script qui soit lancé par sudo

octetsCopies=$(dd if=$source of=$pathToUsb bs=4M conv=fdatasync status=progress 2>&1 | awk 'END {printf ($0+0)}')

=======


2- quand la copie se termine , dd n'a pas encore fini de s'exécuter puisqu'il fait un sync
Mais là pas de monitoring ;
Y-a-t-il une commande à ajouter qui peut montrer l'avancé de la commande sync ? …

Avec cette ligne de commande en bash lancée dans une autre fenêtre de terminal,
je peux suivre (toutes les demi-secondes) la progression du nombre de secteurs qui ont été écrits
sur le fichier de périphérique dont le nom est dans la variable $pathToUsb

pathToUsb="/dev/sdc"
watch -tn0.5 "awk '/'${pathToUsb##*/}'/ {print \$10}' /proc/diskstats"

Dernière modification par MicP (Le 18/01/2021, à 16:08)

Hors ligne

#3 Le 18/01/2021, à 19:33

lanfust

Re : [RESOLU]Monitoring de la commande dd

MicP a écrit :

Bonjour


1- si je veux récupérer uniquement le chiffre des octets comment puis je procéder ? …

octetsCopies=$(sudo dd if=$source of=$pathToUsb bs=4M conv=fdatasync status=progress 2>&1 | awk 'END {printf ($0+0)}')

Si cette ligne de commande est dans un script,
il vaudrait mieux que ce soit le script qui soit lancé par sudo

octetsCopies=$(dd if=$source of=$pathToUsb bs=4M conv=fdatasync status=progress 2>&1 | awk 'END {printf ($0+0)}')

...

Bonsoir

je viens d'essayer la commande

sudo dd if=$source of=$usb bs=4M conv=fdatasync status=progress 2>&1 | awk 'END {printf ($0+0)}'

mais je n'obtiens rien en sortie
seulement ça à la fin

5,73571e+09


Dual boot Windows 11 / Ubuntu 22.04
Créer une clé usb bootable
https://github.com/kramer04/usb_Bootable

Hors ligne

#4 Le 18/01/2021, à 20:35

MicP

Re : [RESOLU]Monitoring de la commande dd

La commande printf d'awk sur ta machine
ne donne pas le même résultat que sur la mienne.
Change pour :

sudo dd if=$source of=$usb bs=4M conv=fdatasync 2>&1 | awk 'END {print ($0+0)}'

et j'ai ajouté un caractère espace en plus
dans celle là :

pathToUsb="/dev/sdc"
watch -tn0.5 "awk '/'${pathToUsb##*/}' / {print \$10}' /proc/diskstats"

Dernière modification par MicP (Le 18/01/2021, à 20:38)

Hors ligne

#5 Le 19/01/2021, à 10:26

lanfust

Re : [RESOLU]Monitoring de la commande dd

MicP a écrit :

La commande printf d'awk sur ta machine
ne donne pas le même résultat que sur la mienne.
Change pour :

sudo dd if=$source of=$usb bs=4M conv=fdatasync 2>&1 | awk 'END {print ($0+0)}'

et j'ai ajouté un caractère espace en plus
dans celle là :

pathToUsb="/dev/sdc"
watch -tn0.5 "awk '/'${pathToUsb##*/}' / {print \$10}' /proc/diskstats"

je viens de réessayer avec print
mais j'obtiens le même résultat

Bizarre si j'ai bien compris chez toi ça marche ?


Dual boot Windows 11 / Ubuntu 22.04
Créer une clé usb bootable
https://github.com/kramer04/usb_Bootable

Hors ligne

#6 Le 19/01/2021, à 10:50

MicP

Re : [RESOLU]Monitoring de la commande dd

… si j'ai bien compris chez toi ça marche ?

Oui, sur mon système Xubuntu,
j'ai testé toutes les lignes de commandes
avant de les poster dans mes messages.

michel@ubuT450:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal
michel@ubuT450:~$ 
michel@ubuT450:~$ awk --version
GNU Awk 5.0.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.2.0)
Copyright © 1998, 1991-2019 Free Software Foundation.

Ce programme est un logiciel libre ; vous pouvez le redistribuer et le
modifier selon les termes de la licence publique générale GNU (GNU
General Public License), telle que publiée par la Free Software
Foundation ; soit selon la version 3 de cette licence, soit selon une
version ultérieure de votre choix.

Ce logiciel est distribué en espérant qu'il sera utile, mais SANS AUCUNE
GARANTIE, y compris les garanties implicites D'ADAPTATION À UN BUT
SPÉCIFIQUE et de COMMERCIALISATION. Pour plus d'informations à ce
sujet, consultez le texte de la licence publique générale GNU (GNU
General Public License).

Vous devriez avoir reçu copie de la licence publique générale GNU
(GNU General Public License) avec ce programme. Sinon, consultez
http://www.gnu.org/licenses/.
michel@ubuT450:~$ 
michel@ubuT450:~$ dd --version
dd (coreutils) 8.30
Copyright © 2018 Free Software Foundation, Inc.
License GPLv3+ : GNU GPL version 3 ou ultérieure <https://www.gnu.org/licenses/gpl.fr.html>
Ceci est un logiciel libre. Vous êtes libre de le modifier et de le redistribuer.
Ce logiciel n'est accompagné d'ABSOLUMENT AUCUNE GARANTIE, dans les limites
permises par la loi.

Écrit par Paul Rubin, David MacKenzie et Stuart Kemp.
michel@ubuT450:~$ 

========
Essaye en spécifiant un format d'affichage à la commande printf d'awk :

octetsCopies=$(sudo dd if=$source of=$usb bs=4M conv=fdatasync 2>&1 | awk 'END {printf "%d", ($0+0)}')
echo -e "Octets copiés\t: $octetsCopies\nSecteurs copiés\t: $(($octetsCopies/512))"
pathToUsb="/dev/sdc"
watch -tn0.5 "awk '/'${pathToUsb##*/}' / {printf \"%d\", \$10}' /proc/diskstats"

Voilà ce que ça donne sur ma machine : (la fenêtre de terminal de droite affiche la progression avec la commande watch)
1611049546.png

Dernière modification par MicP (Le 20/01/2021, à 14:11)

Hors ligne

#7 Le 19/01/2021, à 13:01

erresse

Re : [RESOLU]Monitoring de la commande dd

Bonjour,
Est-ce que "dcfldd" ou "dc3dd", versions de "dd" qui fournissent des statistiques d'avancement de la copie, pourraient convenir ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 21/01/2021, à 13:46

lanfust

Re : [RESOLU]Monitoring de la commande dd

finalement voilà la commande

sudo dd if=$source of=$usb bs=4M conv=fdatasync status=progress 2>&1 | stdbuf -o1 tr '\r' '\n' | stdbuf -o1 cut -d' ' -f1 | sed 's/[a-z]*//g

et en sortie on obtient ça

5296357376 
5328863232 
5359271936 
5393874944 
5420089344 

et la commande donnée par @MicP pour mesurer le nombre de secteurs lus fonctionne bien

pathToUsb="/dev/sdc"
watch -tn0.5 "awk '/'${pathToUsb##*/}' / {printf \"%d\", \$10}' /proc/diskstats"

Dernière modification par lanfust (Le 21/01/2021, à 13:58)


Dual boot Windows 11 / Ubuntu 22.04
Créer une clé usb bootable
https://github.com/kramer04/usb_Bootable

Hors ligne

#9 Le 21/01/2021, à 23:58

MicP

Re : [RESOLU]Monitoring de la commande dd

… pour mesurer le nombre de secteurs lus …

Euh … juste pour dire que le champ N°10 contient les secteurs qui ont été écrits

Hors ligne

#10 Le 22/01/2021, à 10:27

lanfust

Re : [RESOLU]Monitoring de la commande dd

MicP a écrit :

… pour mesurer le nombre de secteurs lus …

Euh … juste pour dire que le champ N°10 contient les secteurs qui ont été écrits

merci pour la précision


Dual boot Windows 11 / Ubuntu 22.04
Créer une clé usb bootable
https://github.com/kramer04/usb_Bootable

Hors ligne