Archiv verlassen und diese Seite im Standarddesign anzeigen : scp für mehrere dateien anwenden !!!
mr-sansibar
01-10-2007, 15:04
Hallo!
ich möchte mit dem scp Befehl mehrere Dateien aus unterschiedlichen Ordner in ein anderes Verzeichnis in einem anderem Server kopieren ?
dieser befehl kopiert mir nur ein einzige datei ???
scp -r /ordner1/ordner2/*/*test.tar server:/ordner1/ordner2/ordner3/.
Vielen Dank !
scp -r /ordner1/ordner2/*/*test.tar server:/ordner1/ordner2/ordner3/.
Die Option -r ist in diesem Fall zumindest überflüssig, Du gibst ja Dateien und keine Ordner an. Was sagt ein "ls /ordner1/ordner2/*/*test.tar"?
Jan
mr-sansibar
02-10-2007, 11:19
ich bekomme die meldung:
-bash: /usr/bin/ls: Arg list too long
ich bekomme die meldung:
-bash: /usr/bin/ls: Arg list too long
Tja, das ist eindeutig. Es sind zu viele Dateien, der Puffer für die Kommandozeile ist zu klein. Versuche mal, das in mehrere kleinere Happen aufzuteilen, z. B. so:
for d in /ordner1/ordner2/*; do
test -d "$d" || continue
scp $d/*test.tar server:/ordner1/ordner2/ordner3/
doneJan
mr-sansibar
02-10-2007, 22:41
vielen dank !
würde er nicht bei jeden schleifen durchlauf nach dem passwort fragen ?
BLUESCREEN3D
03-10-2007, 17:50
würde er nicht bei jeden schleifen durchlauf nach dem passwort fragen ?
Wenn du das sonst auch eingeben musst: Ja.
Dagegen kannst du einen Key auf den Server packen - dann musst du kein Passwort mehr eingeben (such bei linuxforen.de danach).
Oder pack einfach die Dateien mit z.B. tar, lade das Archiv hoch und entpack es wieder.
mr-sansibar
04-10-2007, 08:50
Tja, das ist eindeutig. Es sind zu viele Dateien, der Puffer für die Kommandozeile ist zu klein. Versuche mal, das in mehrere kleinere Happen aufzuteilen, z. B. so:
for d in /ordner1/ordner2/*; do
test -d "$d" || continue
scp $d/*test.tar server:/ordner1/ordner2/ordner3/
doneJan
Und zwar hab ich Deine Lösung etwas geändert !
set -x
for d in /ordner1/ordner2/*; do
test -d "$d" || continue
scp $d/*20070930*.tar server1:/ordner1/ordner2/ordner3/
done
Aber es tut sich nicht und es erscheint nicht mal eine Meldung ?
Und zwar hab ich Deine Lösung etwas geändert !
set -x
for d in /ordner1/ordner2/*; do
test -d "$d" || continue
scp $d/*20070930*.tar server1:/ordner1/ordner2/ordner3/
doneAber es tut sich nicht und es erscheint nicht mal eine Meldung ?
Dann setze doch mal vor den "test -d ..." ein "echo $d", damit Du siehst, ob und was er findet.
Eine andere Möglichkeit (ich kenne ja Deine Verzeichnisstruktur nicht):
find /ordner1/ordner2 -mindepth 1 -maxdepth 1 -type d -print | while read d; do echo $d; doneDamit kannst Du Dir erstmal angucken, welche Unterverzeichnisse es unter /ordner1/ordner2 gibt.
Jan
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.