Dateien von RechnerB tar und holen (auf RechnerA) [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Dateien von RechnerB tar und holen (auf RechnerA) [gelöst]

Beitrag von Duff » 06.11.2007 15:37:51

Hallo,

wie muss ich einen tar-Befehl mit ssh oder scp verknüpfen, um von RechnerB 2 Dateien zu einem tar zusammen zufassen und auf RechnerA zu kopieren. Das ganze soll natürlich von RechnerA aus geschehen.

(Die ssh-Schlüssel sind natürlich hinterlegt ;-))

Danke.
Zuletzt geändert von Duff am 08.11.2007 15:33:35, insgesamt 1-mal geändert.
Oh, yeah!

yeti

Beitrag von yeti » 06.11.2007 16:47:10

Ungefähr so müsste es gehen...

Code: Alles auswählen

ssh rechnerB tar cf - datei1 datei2 >TarFileAufLokalemRechner.tar
Wenn tar ohne f-Option auf Stdout ausgibt und nicht auf $TAPE, können das f ind das Minus entfallen. Ich halte es aber für sicherer, durch "f -" stdout zu erzwingen, denn wer weiß, ob morgen eine neue Version anders reagiert oder $TAPE gesetzt ist...

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 07.11.2007 10:40:36

Danke, dass ganze funktioniert soweit.

Nur macht mich diese Fehlermeldung hier ein wenig stutzig:

Code: Alles auswählen

tar: /file/auf/rechnerB: file changed size
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 07.11.2007 10:56:35

Oder mache ich das ganze besser in einem perl-Skript?
Bin noch beim Überlegen ob shell oder perl Skript.
Oh, yeah!

yeti

Beitrag von yeti » 07.11.2007 12:15:49

Duff hat geschrieben:

Code: Alles auswählen

tar: /file/auf/rechnerB: file changed size
Ist das ein Logfile, daß während des TARens weiter wächst?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 07.11.2007 12:16:43

yeti hat geschrieben:
Duff hat geschrieben:

Code: Alles auswählen

tar: /file/auf/rechnerB: file changed size
Ist das ein Logfile, daß während des TARens weiter wächst?
Ja, sorry.

Es geht um logfiles, die gesichert werden sollen und die beim taren weiterwachsen können.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 08.11.2007 09:23:37

Komme irgendwie nicht weiter.

Und zwar möchte ich folgendes machen:

Code: Alles auswählen

spath="/mein/pfad"
app="appname"
DIRECTORY=`/usr/bin/ls ${spath} | /usr/bin/egrep '^${app}.+?[^\.][0-9]+$'`
Wie muss ich das Umschreiben, dass das ganze mit meinen Variablen funktioniert?
Der egrep-Befehl mit der Variablen funktioniert so nicht.

Ist dies überhaupt bei einem Shell-Skript möglich?

[edit]
Habe den Fehler doch noch finden können.
Lag an den Einfachen Hochkommatas. Diese müssen durch " ersetzt werden!
[/edit]
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 08.11.2007 10:21:47

yeti hat geschrieben:Ungefähr so müsste es gehen...

Code: Alles auswählen

ssh rechnerB tar cf - datei1 datei2 >TarFileAufLokalemRechner.tar
Wenn tar ohne f-Option auf Stdout ausgibt und nicht auf $TAPE, können das f ind das Minus entfallen. Ich halte es aber für sicherer, durch "f -" stdout zu erzwingen, denn wer weiß, ob morgen eine neue Version anders reagiert oder $TAPE gesetzt ist...

Kann ich auch die Dateien irgendwie in tar so speichern, dass diese nicht den kompletten Pfadnamen haben?

Ich muss auf dem rechnerB den kompletten Pfad zur Datei angeben, die gesichert werden soll. Möchte ich diese nun wieder entpacken, so wird diese unter dem kompletten Pfad auch wieder zurückgesichert bzw. der Pfad wird auf einem anderen System komplett so angelegt.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 08.11.2007 12:13:21

Habe es nun nach langem Suchen und Probieren endlich herausgefunden bzw. habe es so gelöst:

Code: Alles auswählen

ssh rechnerB"cd /mein/Pfad/; find . \( -name log1.log -o -name log2.log \) -print | xargs tar cvf - " > test.tar
Oh, yeah!

yeti

Beitrag von yeti » 08.11.2007 17:31:24

...schau Dir mal die C-Option (großes C) von TAR an...

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 09.11.2007 07:15:56

yeti hat geschrieben:...schau Dir mal die C-Option (großes C) von TAR an...
Danke, dass hatte ich auch schon probiert. Wollte bei mir aber nicht so ganz funktionieren.

Ich habe auch irgendwie das Problem beim Entpacken, dass ich ich es nicht hinbekomme, die Dateien zum Auspacken in ein neu erstelltes Vezeichnis zu Packen.
Oh, yeah!

Antworten