Frage

Ich muss SCP -Aktualisierung eines Verzeichnisses auf einem anderen Server verwenden. Das ist vergleichbar mit

for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done

Wie kann ich die Suche durchführen, während sich die Zielverzeichnisse auf einem anderen Server befinden?

Danke

War es hilfreich?

Lösung

for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:/usr/some/dir/$i .
done

Der Fund ist das, wonach Sie suchen, denke ich ...

Andere Tipps

Jeder vergisst, Räume in Dateinamen zu verarbeiten: P.

Um das Beispiel von LB wiederzuverwenden:

OLD_IFS=$IFS
IFS=$\'n'
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:"/usr/some/dir/$i" .
done
IFS=$OLD_IFS

Dies wird über jede Ausgangszeile anstelle jedes Wortes (und $ i wird angegeben) geleitet.

for i in `ssh user@otherhost ls /usr/some/dir/` 
do
 scp user@otherhost:/usr/some/dir/$i .
done

Wenn Sie auf dem Remote -Server einen Shell -Zugriff haben, erstellen Sie eine Liste der Verzeichnisse aus der Ferne (mit Find oder LS oder was auch immer Sie in Ihrem Shell -Skript verwenden würden) und kopieren Sie ihn wieder in das System, von dem Sie kopieren. Dann können Sie verwenden

for d in file_of_remote_dirs; do
    scp /usr/some/file remote_machine:d;
done
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top