Bonjour,
Mon problème est le suivant, je voudrais charger plusieurs disques avec une image préalablement crées avec dd et bzip2, ma commande pour restaurer est
bunzip2 -c ./fichier.bz2|dd of=/dev/hda
et je recommence cette opération sur les 4 disques
Ma question est : existe t'il une solution pour envoyer la sortie de bunzip sur 4 dd simultanément.
merci,
# Hmmm
Posté par LaBienPensanceMaTuer . Évalué à 2.
#!/bin/sh
TEE=""
for disk in <liste des disques> ; do
FIFO=/tmp/$disk
mkfifo $FIFO
cat $FIFO | dd of=/dev/$disk &
TEE=${TEE}"| tee /tmp/$disk"
done
TEE=${TEE}">/dev/null"
bunzip2 -c ./fichier.bz2 $TEE
Pour l'explication, la commande tee copie tout ce qui lui est passé sur son entrée standard faire le fichier précisé en argument et sa sortie standard, en gros donc on duplique.
Donc la:
1/ on crée des FIFO et on va faire en sorte que tout ce qui y sera jeté soit écrit sur le disque.
2/ on balance notre fichier décompressé vers les fifos en questions.
Après, comme je le disais plus haut, je suis pas sur que cela marche et que, au cas ou cela marche, les perfs soit très bonnes...
[^] # Re: Hmmm
Posté par Paul Rouget . Évalué à 1.
[^] # Re: Hmmm
Posté par LaBienPensanceMaTuer . Évalué à 2.
Bien joué :)
# tee + fifo
Posté par Paul Rouget . Évalué à 1.
Si tu passes par une fifo (mkfifo), tu peux encore dédoubler, etc...
mkfifo /tmp/dd1
mkfifo /tmp/dd2
mkfifo /tmp/dd3
bunzip | tee /tmp/dd1 | dd
cat /tmp/dd1 | tee /tmp/dd2 | dd
cat /tmp/dd2 | tee /tmp/dd3 | dd
cat /tmp/dd3 | dd
Bon, c'est la premiere idée qui me vient à l'esprit, j'espere qu'il y a plus simple
(bidouilles avec les redirections ?)...
[^] # Re: tee + fifo
Posté par netsurfeur . Évalué à 2.
Ca peut s'optimiser en supprimant les cat:
mkfifo /tmp/dd1
mkfifo /tmp/dd2
mkfifo /tmp/dd3
bunzip2 | tee /tmp/dd1 | tee /tmp/dd2 | tee /tmp/dd3 | dd of=/dev/hdd &
dd if=/tmp/dd1 of=/dev/hda &
dd if=/tmp/dd1 of=/dev/hdb &
dd if=/tmp/dd1 of=/dev/hdc &
wait
Ne pas oublier de lancer les process en arrière-plan sinon tout se bloque dès que les fifos sont pleines !
# Re: DD sur plusieurs sorties
Posté par netsurfeur . Évalué à 2.
bunzip2 -c ./fichier.bz2|dd of=/dev/hda &
bunzip2 -c ./fichier.bz2|dd of=/dev/hdb &
bunzip2 -c ./fichier.bz2|dd of=/dev/hdc &
bunzip2 -c ./fichier.bz2|dd of=/dev/hdd &
wait
A moins que tu aies un CPU particulièrement lent (genre 486), l'écriture sur les 4 disques sera le facteur limitatif et non bunzip2.
# Merci
Posté par sspoke . Évalué à 1.
Pour la version 4 bunzip en paralelle, ce n'est effectivement pas le processeur qui pose probleme mais le fait que le fichier source soit lu par 4 programmes en meme temps, ce qui a le dont de multiplier les temps par 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.