7 votes

Copie vers deux emplacements en même temps

Je ne suis pas très à l'aise avec bash... ce que j'aimerais faire, c'est copier le contenu d'un DVD-R sur deux disques durs différents de la manière la plus rapide possible.

(Les solutions basées sur l'interface utilisateur sont également les bienvenues)

Merci !

13voto

Schof Points 952

Le goulot d'étranglement sera probablement la lecture du lecteur de DVD, nous devons donc veiller à ne le lire qu'une seule fois, ou à le lire deux fois mais à des intervalles suffisamment rapprochés pour que les données soient toujours dans le cache. Cette dernière solution semble difficile, alors optons pour la première.

Il faut qu'on ait un duplicateur quelque part. Si nous nous limitons aux commandes basiques de Shell, le seul choix est tee . Nous devons donc convertir l'entrée (un arbre de fichiers) en un flux, alimenter le flux à tee et de reconvertir chaque flux de sortie en un arbre de fichiers. L'outil pour faire cela est un archiveur. La compression sur quelque chose qui restera en mémoire est un gaspillage, alors utilisons simplement tar .

Tuyaux ( command0 | command1 ) nous permettent d'envoyer la sortie d'une commande à une autre commande. Nous avons besoin d'intégrer la sortie de tee en deux d'autres commandes, donc une autre construction bash s'avère utile : command1 >(command2) crée un tube qui est passé à command1 comme première commande plutôt que de devenir la sortie standard de command2 . (Regardez la substitution de processus dans le manuel bash).

Voici la commande (non testée) :

mkdir /media/disk0/copy_of_dvd /media/disk1/copy_of_dvd
cd /media/cdrom
tar cf - . | tee >(tar xf - -C /media/disk0/copy_of_dvd) | tar xf - -C /media/disk1/copy_of_dvd

1voto

cbp Points 229

Une solution basée sur Shell consiste à ouvrir un terminal et à taper :

cp -r /location/of/DVD /hard/drive/a &
cp -r /location/of/DVD /hard/drive/b

La commande cp est pour les fichiers de copie et le -r copie tous les fichiers de manière récursive. Vous devez entrer le répertoire dans lequel se trouve votre DVD (généralement /media/dvd ou similaire) et ensuite l'endroit du disque dur où vous voulez les fichiers (c'est-à-dire /home/diego/mydvd ). Le site & envoie le premier processus en arrière-plan et vous pouvez immédiatement entrer et exécuter une deuxième commande.

1voto

David Z Points 9015

Comme mentionné dans le commentaire de Li Lo à la réponse de qbi, les lecteurs optiques (CD, DVD, etc.) sont les lecteurs les plus lents, vous devez donc minimiser la quantité de lecture que vous faites à partir du lecteur de DVD. La solution évidente serait de copier les données du DVD vers un emplacement du disque dur, puis de les copier de cet emplacement vers l'autre disque dur.

cp -r /media/cdrom /location1
cp -r /location1 /location2

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X