Dd: clonage par le réseau?

Bonjour,
je m’ocuppe d’une petite salle info d’une dizaine de postes que j’aimerais passer en dual-boot XP-Lenny je l’ai déjà fait sur un poste et tout fonctionne très bien. J’ai ensuite cloné un deuxième poste en créant une image du premier sur un disque externe:

puis sur l’autre poste:

et ça marche impeccablement bien…

Maintenant j’aimerais savoir s’il était possible de faire ça sans passer par un disque externe, directement par le réseau (en passant par ssh?)??

Merci

bon j’ai trouvé ça:

dd if=/dev/sda | gzip | ssh root@TargetadressIP 'gzip -d | dd of=/dev/sda bs=16384'

mais peut-on lancer ssh avec un live-cd?

Je ne jure pas mais ça m’étonnerais.

Ben pourquoi pas de ssh depuis un livecd ? Le livecd de NST le fait.
Faut juste créer les clés et peut-être jardiner un coup pour ne pas avoir à les regénérer à chaque utilisation.

ok, je vais essayer, merci!

Bon, avec un livecd ubuntu que j’avais sous la main, ssh marche sans soucis!

Par contre avec une commande du style:

Serait-il possible de cloner plusieurs postes ensemble?

Bon j’ai créé le script ci-dessous qui devrait me permettre de restaurer n’importe laquelle des partitions d’un poste du réseau local (voir ci-dessous) mais ce script ne fonctionnerait que pour un poste à la fois…

Maintenant, j’aimerais bien pouvoir restaurer plusieurs postes en même temps (voire même tous!). Du genre:

  1. Choisir le type de restauration (Win, Linux, complète)
  2. Entrer les numéros des postes à restaurer
  3. le type de restauration choisie s’effectue simultanément sur tous les postes!

C’est possible à votre avis? Comment puis-je faire?
Merci

PS: un modérateur peut tout à fait déplacer ce fil dans la catégorie “programmation”…

Voici mon script clonage.sh:

#! /bin/sh  

#set -xv  

echo 'Que voulez-vous faire ?  
1. Restaurer Windows  
2. Restaurer Linux  
3. Restaurer le poste entier'  

read -s -n1 reponse  

case "$reponse" in  
1)      echo "Entrez le numéro du poste sur lequel vous souhaitez restaurer la partition WINDOWS:"  
 read numero  

 echo "Vous aller écraser la partition hda2 du poste$numero ! Etes-vous sûr de savoir ce que vous faites? <o ou n> ?"  
 read WISH  
 echo  

 if [ $WISH = "n" ] ; then  
 echo "Vous n'êtes pas sûr, au revoir."  
 exit  

 fi  


 if [ ! $WISH = "o" ] ; then  
 echo "option invalide - exiting"  
 exit  
 fi  


 echo "vous avez choisi de continuer!"  
 echo "début de la restauration sur le poste$numero"  

        dd if=/dev/hda2 |gzip| ssh root@104_poste$numero 'gzip -d | dd of=/dev/hda2'  
        ;;  



2)      echo "Entrez le numéro du poste sur lequel vous souhaitez restaurer les partitions LINUX:"  
 read numero  

 echo "Vous aller écraser les partitions hda3 et hda6 du poste$numero ! Etes-vous sûr de savoir ce que vous faites? <o ou n> ?"  
 read WISH  
 echo  

 if [ $WISH = "n" ] ; then  
 echo "Vous n'êtes pas sûr, au revoir."  
 exit  

 fi  


 if [ ! $WISH = "o" ] ; then  
 echo "option invalide - exiting"  
 exit  
 fi  


 echo "vous avez choisi de continuer!"  
 echo "début de la restauration sur le poste$numero"  

        dd if=/dev/hda3 |gzip| ssh root@104_poste$numero 'gzip -d | dd of=/dev/hda3'  
 dd if=/dev/hda6 |gzip| ssh root@104_poste$numero 'gzip -d | dd of=/dev/hda6'  
        ;;  



3)      read numero  

 echo "Vous aller écraser les partitions hda2, hda3 et hda6 du poste$numero ! Etes-vous sûr de savoir ce que vous faites? <o ou n> ?"  
 read WISH  
 echo  

 if [ $WISH = "n" ] ; then  
 echo "Vous n'êtes pas sûr, au revoir."  
 exit  

 fi  


 if [ ! $WISH = "o" ] ; then  
 echo "option invalide - exiting"  
 exit  
 fi  


 echo "vous avez choisi de continuer!"  
 echo "début de la restauration sur le poste$numero"  

 dd if=/dev/hda2 |gzip| ssh root@104_poste$numero 'gzip -d | dd of=/dev/hda2'  
        dd if=/dev/hda3 |gzip| ssh root@104_poste$numero 'gzip -d | dd of=/dev/hda3'  
 dd if=/dev/hda6 |gzip| ssh root@104_poste$numero 'gzip -d | dd of=/dev/hda6'  
        ;;  



*)      echo "Mauvais choix. Recommencez..."  
        ;;  
esac  

bonjour,
ce n’est peut-être pas ce que tu recherches, mais nous utilisons clonezilla.
Ca fonctionne depuis un CD, une clef USB ou via le réseau si tu as un serveur.
Donc, pour restaurer une machine, je la boot en PXE et ensuite j’ai mon menu clonezilla personnalisé et je choisis mon image à restaurer.
Un des avantages de clonezilla est de savoir faire du multicast, c’est très puissant pour restaurer un grand nombre de machines.

Oui en effet, je connaissais clonezilla!
En fait j’aimerais vraiment me débrouiller avec dd…

Alors la commande avec ssh marche parfaitement:

Maintenant j’aimerais la faire fonctionner avec parallel-ssh. Je me suis crée un fichier hosts dans lequel il y a les IPs de mes postes et j’ai configuré ssh pour se connecter sans mot de passe.

La commande ci-dessous indique que tout se passe bien (sur un exemple avec deux machines)

parallel-ssh -h hosts.txt -l root hostname [1] 23:01:27 [SUCCESS] 192.168.1.83 [2] 23:01:27 [SUCCESS] 192.168.1.35

Maintenant si je lance ça:

J’obtiens:

[1] 23:15:35 [FAILURE] 192.168.1.35 Timeout [2] 23:15:35 [FAILURE] 192.168.1.83 (4, 'Interrupted system call')

le fichier sd1.image est bien crée dans /home de chaque machine mais il reste vide…

salut,

es-tu sûr que deux dd peuvent accéder en même temps à la même ressource?

J’ai fait ça plein de fois, j’ai d’abord fait des utilitaires dédiés (serveurpartition, clientpartition, etc), disponibles chez moi (paquet transfert). Puis je me suis rabattu sur netcat qui est plus général. Ensuite j’ai utilisé udpcast qui est parfait si tu as plein de machines: la partition a cloné est envoyé en broadcast ou multicast, le même paquet sert pour tous, tu lances 30 machines en même temps, c’est impressionnant.

Depuis je me suis rabattu sur… les clefs USB. Beaucoup moins compliqué car nécessitant aucune logistique: clef USB autoboutable avec image de la partition.

[quote=“fran.b”]J’ai fait ça plein de fois, j’ai d’abord fait des utilitaires dédiés (serveurpartition, clientpartition, etc), disponibles chez moi (paquet transfert). Puis je me suis rabattu sur netcat qui est plus général. Ensuite j’ai utilisé udpcast qui est parfait si tu as plein de machines: la partition a cloné est envoyé en broadcast ou multicast, le même paquet sert pour tous, tu lances 30 machines en même temps, c’est impressionnant.

Depuis je me suis rabattu sur… les clefs USB. Beaucoup moins compliqué car nécessitant aucune logistique: clef USB autoboutable avec image de la partition.[/quote]

ok et concrètement, tu fais comment? En utilisant parallel-ssh et le type de commande que j’ai mentioné ci-dessus, ce n’est pas possible?
J’aimerais bien savoir ce que je fais de faux avec ma commande??
Merci