ssh, tar, streamer

Post Reply
Message
Author
Arnie

ssh, tar, streamer

#1 Post by Arnie »

Hallo,

ich versuche mittels ssh und tar auf einen streamer zu schreiben:
<i>ssh user@rechner 'tar -c -z --block-size=32768 /home/user/' > dev/nst1</i>

Fehlermeldung des Treibers in der /var/log/messages:
<i>st1: Write not multiple of tape block size.</i>

Wie kann ich dieses Problem lösen?

<i>tar -c -z --block-size=32768 -f /dev/nst1 /irgendwas</i> funktioniert fehlerfrei.

Tschüß
Arnie

Jochen

Re: ssh, tar, streamer

#2 Post by Jochen »

Ich würde sagen, dass Du den Streamer auf irgendeine feste Blockung eingestellt hast. Ein reines Umlenken von stdout schreibt ohne Blockung und dann streikt das Tape.

Blockung feststellen:
mt -f /dev/nst1 status

Blockung ausschalten:
mt -f /dev/nst1 setblk 0

Oder aber geblockt schreiben:
ssh user@rechner 'tar -c -z --block-size=32768 /home/user/' | dd of=/dev/nst1 bs=32768

Jochen

Tuxic Trace

Re: ssh, tar, streamer

#3 Post by Tuxic Trace »

Wie wäre es mit:

ssh user@rechner 'tar cfz --block-size=32768 /dev/nst1 /home/user/'

Vorausgesetzt, die Blockgröße stimmt, brauchst Du aber selten.

ein "mt -f /dev/nst1 setblk 0" ist da angenehmer, kann aber auf anderen Unices zu Problemen mit dem Rücksichern führen - für rein Linux allerdins ideal, sofern das Laufwerk das mitmacht. Des weiteren ist das erste Bandlaufwerk /dev/nst0 (/dev/st0), nur zur Info - /dev/nst1 stellt das zweite Bandlaufwerk dar.

Jochen

Re: ssh, tar, streamer

#4 Post by Jochen »

@tuxic:

ssh startet tar von Rechner A auf Rechner B; dessen stdout kommt über stdout und ssh zurück zu Rechner A und soll dort auf's Tape. Deine Lösung stösst lediglich eine Sicherung von A auf B an, mit einem Tapedrive an B vorausgesetzt.

Oder habe <i>ich</i> etwas falsch verstanden?

Jochen

Arnie

Re: ssh, tar, streamer

#5 Post by Arnie »

Hallo Jochen,

du hast es richtig verstanden, aber ...

der streamer läßt sich nicht darauf ein, das blocking abzustellen. Auszug aus der logdatei:
<i>kernel: st1: Error with sense data: Current st09:01: sense key Illegal Request
kernel: Additional sense indicates Parameter not supported</i>

die variante mit dd führt zu folgender ausgabe:
<i>dd: Schreiben von »/dev/nst1«: Das Argument ist ungültig
0+1 Records ein
0+0 Records aus</i>
und in der logdatei steht wiedermal:
<i>kernel: st1: Write not multiple of tape block size.</i>

trotzdem danke für die tipps.

Tschüß
Arnie

Jochen

Re: ssh, tar, streamer

#6 Post by Jochen »

Typischerweise sind alle Blöckgrössen Mehrfache von 512. Verwende doch noch mal die Kombi mit dd, aber diesmal mit Blockgrösse 512:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
ssh user@rechner 'tar -c -z --block-size=32768 /home/user/' | dd of=/dev/nst1 bs=512
</font><hr></pre></blockquote>
Oder vielleicht "obs=512", um explizit die Output-Blocksize auf 512 Byte zu setzen?

Am Rande: Was für ein Streamer ist es denn? Was sagt das "mt -f /dev/nst1 status"?

Jochen

Rossi

Re: ssh, tar, streamer

#7 Post by Rossi »

Zur Not, falls es sich um ein vertrauenswürdiges Netz handelt und Du rshd auf dem Client laufen haben solltest, nimmst Du den anderen Weg:

ssh user@rechner # Einloggen auf dem Rechner mit dem Bandlaufwerk
password:

tar cvf clientrechner:/verzeichnis /dev/nst1

Geht aber wohl auch nur mit gnutar.

Hab mal

tar cvf - /home/user | ssh user@rechner 'tar cf /dev/nst1 -"

versucht, klappt aber konischerweise nicht. Er weigert sich, warum auch immer, das zweite "-" als stdin anzuerkennen sondern sucht eine Datei namens "-", die es logischerweisw nichr gibt. Wobei ich mir auch nicht sicher bin, ob das erste "-" überhaupt auch als stdout verwendet wird.

Post Reply