Je cherche une méthode pour récupérer l’avancement lorsque je fais un DD.
C’est à dire, ne pas suivre en direct ( comme le propose l’option status=progress),
mais récupérer l’état d’avancement dans un fichier texte par exemple.
J’arrive à le faire lorsque je décompresse une archive :
#fichier maj
if sudo 7z l $maj_fichier_full_rar | grep $maj_fichier_full_name ;then
echo "ok"
else
sudo rm -rf /StockImg/*
return_result "Contenu archive incorrecte// MAJ PATCH"
return 2
fi
#fichier version
if sudo 7z l $maj_fichier_full_rar | grep $maj_scriptversion_name ;then
echo "ok"
else
sudo rm -rf /StockImg/*
return_result "Contenu archive incorrecte// MAJ PATCH"
return 2
fi
sleep 3
echo "Commencer extraction"
sudo python $lcd_maj_suivi "full" "Extraction maj" "non"
sleep 3
taille_finale=$(sudo 7z l $maj_fichier_full_rar | sudo grep $maj_fichier_full_name | sudo tr -s ' ' ';' | sudo cut -d';' -f4 )
echo $taille_finale
taille_intermediaire=1
echo $taille_intermediaire
sudo 7z x $maj_fichier_full_rar | while [ $taille_finale -ne $taille_intermediaire ] ;do
if [ -f $maj_fichier_full ];then
taille_existant=$(du -b $maj_fichier_full | awk '{ print $1 }')
taille_intermediaire=$taille_existant
taille_tempsreel=$(($taille_existant*100/$taille_finale))"%"
sudo python $lcd_maj_suivi "full" $taille_tempsreel "oui"
echo $taille_finale
echo $taille_existant
echo $taille_tempsreel
else
((taille_intermediaire++))
fi
done
Quelque-chose de ce genre là
C’est pour permettre de diffuser l’information sur mon écran, monté sur les GPIO.
Je récupère cette information pour la passer dans mon script python.
Une autre solution consiste à
installer le paquetage nommé pv
Ci-dessous, un exemple de ligne de commandes utilisant pv
qui affiche une barre de progression
pendant la création par dd du fichier image de ma clef USB
Pour pouvoir récupérer l’avancement à un instant donné, sans le suivre en temps réel, je pense que je bricolerais quelque chose utilisant stat, du, ls ou un autre outil dans ce style pour comparer la taille de la source et celle de la destination.