logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 18-09-2015 10:25:49

Anonyme
Invité

DD pour la copie de Dvd Vidéo

Bonjour,

J'ai trouvé celui-ci sur le Net. C'est juste pour le mettre de coté. (dur dur pour le trouver)

http://www.linuxquestions.org/questions … 175459061/

Il met les bonnes infos dans la commande dd (par isoinfo), c'est ça que je trouve pratique smile


#!/bin/bash

#cvlc :start-time=1 --stop-time=4 dvd:///dev/sr0 vlc://quit

BS=$(isoinfo -d -i /dev/sr0 | grep "^Logical block size is:" | awk '{print $5}')
VS=$(isoinfo -d -i /dev/sr0 | grep "^Volume size is:" | awk '{print $4}')
VSID=$(isoinfo -d -i /dev/sr0 | grep "Volume set id: " | awk '{print $4}')
VID=$(isoinfo -d -i /dev/sr0 | grep "^Volume id: " | awk '{print $3}')

if [ -z $1 ]; then
    if [ -z $VSID ] || [ "$VSID" == "UNDEFINED" ] || [ "$VSID" == "NOT_SET" ] || [ $VID == $VSID ] ; then
        OF=${VID}
    else
        OF=${VID}_${VSID}
    fi
else
    OF=$(basename $1 .iso) # just in case I accidentally pasted in a name with .iso
fi

echo $OF
echo $BS
echo $VS

pv /dev/sr0 | dd conv=noerror bs=$BS count=$VS of=$OF.iso

sleep 3
eject /dev/sr0
 



1442568538.jpg

Dernière modification par Anonyme (01-04-2017 19:42:26)

#2 18-09-2015 10:58:04

Anonyme
Invité

Re : DD pour la copie de Dvd Vidéo

Qui permet aussi d'avoir la barre de progression vu les infos rentrées smile

#3 18-09-2015 17:17:02

Anonyme
Invité

Re : DD pour la copie de Dvd Vidéo

Est-ce que quelqu'un peut me faire un truc avec zenity ?
Ça serait vraiment cool smile

#4 18-09-2015 23:03:47

Anonyme
Invité

Re : DD pour la copie de Dvd Vidéo

Bingo, ça fonctionne :

La partie :


 (pv /dev/sr0 -n -r  | dd of=$OF.iso bs=$BS count=$VS) 2>&1 | zenity --progress --title "Clonage Avec DD"  --text="Création Du Fichier ISO En Cours ..." --percentage=1 --width=640 --height=100  &
 



C'est bien une progression et non le pulsate tongue

1442613780.jpg


Le bouton arrêt stoppe bien le programme.

Je range tout ça dans le script et je poste le merdier big_smile

EDIT:


#!/bin/bash

#cvlc :start-time=1 --stop-time=4 dvd:///dev/sr0 vlc://quit

BS=$(isoinfo -d -i /dev/sr0 | grep "^Logical block size is:" | awk '{print $5}')
VS=$(isoinfo -d -i /dev/sr0 | grep "^Volume size is:" | awk '{print $4}')
VSID=$(isoinfo -d -i /dev/sr0 | grep "Volume set id: " | awk '{print $4}')
VID=$(isoinfo -d -i /dev/sr0 | grep "^Volume id: " | awk '{print $3}')

if [ -z $1 ]; then
    if [ -z $VSID ] || [ "$VSID" == "UNDEFINED" ] || [ "$VSID" == "NOT_SET" ] || [ $VID == $VSID ] ; then
        OF=${VID}
    else
        OF=${VID}_${VSID}
    fi
else
    OF=$(basename $1 .iso) # just in case I accidentally pasted in a name with .iso
fi

echo $OF
echo $BS
echo $VS

#(pv /dev/sr0 | dd conv=noerror bs=$BS count=$VS of=$OF.iso)  |  zenity --title="DD" --progress --width=600 --height=50 --pulsate --auto-close &

 (pv /dev/sr0 -n -r  | dd of=$OF.iso bs=$BS count=$VS) 2>&1 | zenity --progress --title "Clonage Avec DD"  --text="Création Du Fichier ISO En Cours ..." --percentage=1 --width=640 --height=100  &

#(pv -n /dev/sr0 | dd conv=noerror  bs=$BS count=$VS of=$OF.iso) 2>&1 | dialog --gauge "Copie du DVD, Attendre..." 10 70 0



# Get Zenity Brother Process Which is Parent of All Running Tasks
PID_ZENITY=$(ps -C zenity h -o pid,command | grep "DD" | awk '{print $1}')
PID_PARENT=$(ps -p ${PID_ZENITY} -o ppid=)
PID_CHILDREN=$(pgrep -d ',' -P ${PID_PARENT})

# Loop To Check That Progress Dialog Has Not Been Cancelled
while [ "$PID_ZENITY" != "" ]
do
# Get PID of Running Processes For The Children
  PID_GRANDCHILDREN=$(pgrep -d ' ' -P "${PID_CHILDREN}")

# Check if Zenity PID is Still There (Dialog Box Still Open)
  PID_ZENITY=$(ps h -o pid -p ${PID_ZENITY})

# Sleep for 2 Second
  sleep 2
done

# if Some Running Tasks are Still There, Kill Them
[ "${PID_GRANDCHILDREN}" != "" ] && kill -9 ${PID_GRANDCHILDREN}


else
    echo "Aucun Choix, Ou Quelque Chose S'est Mal Passé -- Arrêt"
   exit 1
fi
 

Dernière modification par Anonyme (01-04-2017 19:45:40)

#5 18-09-2015 23:16:27

Anonyme
Invité

Re : DD pour la copie de Dvd Vidéo

Maintenant il faudrait, que quand les 100 % sont fait et que le bouton valider est dégrisé, un truc plus sympa du style "Copie réussie" tongue

#6 19-09-2015 00:41:45

Anonyme
Invité

Re : DD pour la copie de Dvd Vidéo

Avec Quitter si pas décidé :


#!/bin/bash




BS=$(isoinfo -d -i /dev/sr0 | grep "^Logical block size is:" | awk '{print $5}')
VS=$(isoinfo -d -i /dev/sr0 | grep "^Volume size is:" | awk '{print $4}')
VSID=$(isoinfo -d -i /dev/sr0 | grep "Volume set id: " | awk '{print $4}')
VID=$(isoinfo -d -i /dev/sr0 | grep "^Volume id: " | awk '{print $3}')

if [ -z $1 ]; then
    if [ -z $VSID ] || [ "$VSID" == "UNDEFINED" ] || [ "$VSID" == "NOT_SET" ] || [ $VID == $VSID ] ; then
        OF=${VID}
    else
        OF=${VID}_${VSID}
    fi
else
    OF=$(basename $1 .iso) # just in case I accidentally pasted in a name with .iso
fi

echo $OF
echo $BS
echo $VS





zenity --question --text="Voulez-vous copier le DVD ?"  --width=500 --height=80
if [ $? = 0 ]; then

#(pv -n /dev/sr0 | dd conv=noerror  bs=$BS count=$VS of=$OF.iso) 2>&1 | dialog --gauge "Copie du DVD, Attendre..." 10 70 0
#(pv /dev/sr0 | dd conv=noerror bs=$BS count=$VS of=$OF.iso)  |  zenity --title="DD" --progress --width=600 --height=50 --pulsate --auto-close &
 (pv /dev/sr0 -n -r  | dd of=$OF.iso bs=$BS count=$VS) 2>&1 | zenity --progress --title "Clonage Avec DD"  --text="Création Du Fichier ISO En Cours ..." --percentage=1 --width=640 --height=100  &

else
    exit
fi

# Get Zenity Brother Process Which is Parent of All Running Tasks
PID_ZENITY=$(ps -C zenity h -o pid,command | grep "DD" | awk '{print $1}')
PID_PARENT=$(ps -p ${PID_ZENITY} -o ppid=)
PID_CHILDREN=$(pgrep -d ',' -P ${PID_PARENT})

# Loop To Check That Progress Dialog Has Not Been Cancelled
while [ "$PID_ZENITY" != "" ]
do
# Get PID of Running Processes For The Children
  PID_GRANDCHILDREN=$(pgrep -d ' ' -P "${PID_CHILDREN}")

# Check if Zenity PID is Still There (Dialog Box Still Open)
  PID_ZENITY=$(ps h -o pid -p ${PID_ZENITY})

# Sleep for 2 Second
  sleep 2
done

# if Some Running Tasks are Still There, Kill Them
[ "${PID_GRANDCHILDREN}" != "" ] && kill -9 ${PID_GRANDCHILDREN}


#else
#    echo "Aucun Choix, Ou Quelque Chose S'est Mal Passé -- Arrêt"
#   exit 1
#fi

sleep 2
#zenity --info --text="Copie Réussie"
exit 0
 

Dernière modification par Anonyme (19-09-2015 00:49:35)

#7 19-09-2015 10:07:12

Anonyme
Invité

Re : DD pour la copie de Dvd Vidéo

Voilà :  tongue

1442653512.jpg

1442653594.jpg


1442653620.jpg



#!/bin/bash




BS=$(isoinfo -d -i /dev/sr0 | grep "^Logical block size is:" | awk '{print $5}')
VS=$(isoinfo -d -i /dev/sr0 | grep "^Volume size is:" | awk '{print $4}')
VSID=$(isoinfo -d -i /dev/sr0 | grep "Volume set id: " | awk '{print $4}')
VID=$(isoinfo -d -i /dev/sr0 | grep "^Volume id: " | awk '{print $3}')

if [ -z $1 ]; then
    if [ -z $VSID ] || [ "$VSID" == "UNDEFINED" ] || [ "$VSID" == "NOT_SET" ] || [ $VID == $VSID ] ; then
        OF=${VID}
    else
        OF=${VID}_${VSID}
    fi
else
    OF=$(basename $1 .iso) # just in case I accidentally pasted in a name with .iso  À tout hasard j'ai accidentellement collé un nom avec .iso
fi

echo $OF
echo $BS
echo $VS





zenity --question --text="Voulez-vous copier le DVD ?"  --width=500 --height=80
if [ $? = 0 ]; then

#(pv -n /dev/sr0 | dd conv=noerror  bs=$BS count=$VS of=$OF.iso) 2>&1 | dialog --gauge "Copie du DVD, Attendre..." 10 70 0
#(pv /dev/sr0 | dd conv=noerror bs=$BS count=$VS of=$OF.iso)  |  zenity --title="DD" --progress --width=600 --height=50 --pulsate --auto-close &
 (pv /dev/sr0 -n -r  | dd of=$OF.iso bs=$BS count=$VS) 2>&1 | zenity --progress --title "Clonage Avec DD"  --text="Création Du Fichier ISO En Cours ..." --percentage=1 --width=640 --height=100  &

else
    exit
fi


# Get Zenity Brother Process Which is Parent of All Running Tasks - Obtenir le Processus  Zenity Frère qui est Parent de Toutes les Tâches en Cours.
PID_ZENITY=$(ps -C zenity h -o pid,command | grep "DD" | awk '{print $1}')
PID_PARENT=$(ps -p ${PID_ZENITY} -o ppid=)
PID_CHILDREN=$(pgrep -d ',' -P ${PID_PARENT})

# Loop To Check That Progress Dialog Has Not Been Cancelled - Boucle Pour Vérifier si  la fenêtre de Progression n'a pas été fermée
while [ "$PID_ZENITY" != "" ]
do
# Get PID of Running Processes For The Children - Obtenir  PID  Processus enfants
  PID_GRANDCHILDREN=$(pgrep -d ' ' -P "${PID_CHILDREN}")

# Check if Zenity PID is Still There (Dialog Box Still Open)
  PID_ZENITY=$(ps h -o pid -p ${PID_ZENITY})

# Sleep for 2 Second
  sleep 2
done

# if Some Running Tasks are Still There, Kill Them
[ "${PID_GRANDCHILDREN}" != "" ] && kill -9 ${PID_GRANDCHILDREN}


#else
#    echo "Aucun Choix, Ou Quelque Chose S'est Mal Passé -- Arrêt"
#   exit 1
#fi

sleep 2
zenity --info --text="Copie Réussie"
exit 0
 

Dernière modification par Anonyme (01-04-2017 19:44:18)

Pied de page des forums