
Hallo! Ich suche verzweifelt nach einem Beispiel das mir ein dd in ein tar cvzf piped. Z.B. dd if=/dev/hda of=/mnt.iso | tar xczf mnt.iso.tar.gz Sowas ähnliches hab ich schonmal gesehen, ich kann es aber nicht mehr finden. Vielen dank schonmal im Vorraus! Gruß Mario

On 2 Sep 2002 at 9:28, Mario Ohnewald wrote:
Hallo! Ich suche verzweifelt nach einem Beispiel das mir ein dd in ein tar cvzf piped. Z.B. dd if=/dev/hda of=/mnt.iso | tar xczf mnt.iso.tar.gz
Sowas ähnliches hab ich schonmal gesehen, ich kann es aber nicht mehr finden.
Wie soll das mit Deinem Konstrukt überhaupt gehen? Du gibts dd doch bereits an, das er seinen Output nach /mnt.iso schreiben soll. Da gibts dann nix mehr für die pipe. Lässt Du das "of=..." weg, schreibt dd wenigesten nach stdout, aber: laut "man tar" , section description, gilt: "the final arguments to tar are the names of the files or directories which should be archived. ..." Tar liest seine _Daten_ demnach nicht von stdin, wohl aber die Namen der zu sichernden Dateien und Verzeichnisse. Was du vielleicht meinst, ist ein construct wie: tar cvf - . | (cd /dir; tar xf -), was Daten von "." nach "/dir" kopiert. Hier liefert der erste tar aber eine Liste von Filenamen, die der zweite dann von stdin liest (nicht aber die eigentlichen Daten!) Andreas

Hi,
From: Andreas Kyek [mailto:a.kyek@vodafone.com]
On 2 Sep 2002 at 9:28, Mario Ohnewald wrote:
Hallo! Ich suche verzweifelt nach einem Beispiel das mir ein dd in ein tar cvzf piped. Z.B. dd if=/dev/hda of=/mnt.iso | tar xczf mnt.iso.tar.gz
Sowas ähnliches hab ich schonmal gesehen, ich kann es aber nicht mehr finden.
Wie soll das mit Deinem Konstrukt überhaupt gehen? Du gibts dd doch bereits an, das er seinen Output nach /mnt.iso schreiben soll. Da gibts dann nix mehr für die pipe. Lässt Du das "of=..." weg, schreibt dd wenigesten nach stdout.
ich möchte einfach mit dd eine Platte auslesen und das daraus erzeugte image gepackt übers Netz schicken. ich kann mich nur noch an dd in combination mit tar erinnern, wie das jetzt genau funktioniert hat weis ich nicht mehr.
, aber: laut "man tar" , section description, gilt: "the final arguments to tar are the names of the files or directories which should be archived. ..."
Tar liest seine _Daten_ demnach nicht von stdin, wohl aber die Namen der zu sichernden Dateien und Verzeichnisse. Was du vielleicht meinst, ist ein construct wie:
tar cvf - . | (cd /dir; tar xf -), was Daten von "." nach "/dir" kopiert. Hier liefert der erste tar aber eine Liste von Filenamen, die der zweite dann von stdin liest (nicht aber die eigentlichen Daten!)
Andreas
Gruß Mario

On 2 Sep 2002 at 10:29, Mario Ohnewald wrote:
Hi,
From: Andreas Kyek [mailto:a.kyek@vodafone.com] On 2 Sep 2002 at 9:28, Mario Ohnewald wrote:
Ich suche verzweifelt nach einem Beispiel das mir ein dd in ein tar cvzf piped. Z.B. dd if=/dev/hda of=/mnt.iso | tar xczf mnt.iso.tar.gz
Wie soll das mit Deinem Konstrukt überhaupt gehen? Du gibts dd doch bereits an, das er seinen Output nach /mnt.iso schreiben soll. Da gibts dann nix mehr für die pipe. Lässt Du das "of=..." weg, schreibt dd wenigesten nach stdout.
ich möchte einfach mit dd eine Platte auslesen und das daraus erzeugte image gepackt übers Netz schicken. ich kann mich nur noch an dd in combination mit tar erinnern, wie das jetzt genau funktioniert hat weis ich nicht mehr.
Es gibt mit Sicherheit eine ganze Reihe von Lösungen, die hier in Frage kommen. IMHO solltest Du dir vorher noch mal genau überlegen, was Du brauchst und willst: a) muss es wirklich dd sein, welches nicht einzelne Files sichert, sondern das device? b) wenn filebasiert, muss es tar sein oder nicht besser afio? c) willst Du das ganze wirklich in einer pipe verarbeiten oder nicht? für deine Problemstellung brauchst Du IMHO drei Programme a) dd zum erzeugen eines files b) ein Packprogramm wie gzip oder bzip2 c) etwas zum kopieren im Netz (scp, ftp, ...) Die Teile aus a) und b) kann man in einer Pipe verarbeiten, so daß hier ein .bz2 oder .gz Archiv herauskommt. Was Du hier noch mit tar willst, ist mir nicht klar. hilft das? Andreas

* Mario Ohnewald schrieb am 02.Sep.2002:
ich möchte einfach mit dd eine Platte auslesen und das daraus erzeugte image gepackt übers Netz schicken. ich kann mich nur noch an dd in combination mit tar erinnern, wie das jetzt genau funktioniert hat weis ich nicht mehr.
Du solltest verstehen, was eine pipe macht. Eine pipe nimmt die Standardausgabe des einen Befehls und macht sie zur Standardeingabe des anderen. So wie Du dd angegeben hast, schreibt dd aber nichts auf die Standardausgabe. Also schau Dir man dd an, und suche da, wie dd nicht in eine Datei schreibt, sondern alles in die Standardausgabe ausgibt. Danach schaust Du in man tar um zu sehen, wie tar von der Standardeingabe, statt von einer Datei liest. Andreas hat Dir ja schon einen Hinweis gegeben. Ich halte gar nichts davon, Dir jetzt irgendwelche Kochrezepte zu geben. Ich halte auch nichts davon so mächtige Befehle wie dd zu verwenden, ohne daß Du es auch nur im Ansatz verstanden hast, oder auch nur das pipe Konzept von Linux, was recht fundamental ist. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
participants (3)
-
Andreas Kyek
-
B.Brodesser@t-online.de
-
Mario Ohnewald