2016-04-02 4 views
2

ich in server_a anmelden und .sh-Datei ausführen, die das folgende Skript hat:Kopieren/Verschieben von Dateien auf Remote-Server Linux

scp [email protected]_b:/my_folder/my_file.xml [email protected]_b:/my_new_folder/ 

zum Kopieren von Dateien my_folder-my_new_folder bei server_b. Es wird kein Fehler ausgegeben, aber keine Dateien werden kopiert.

Anmerkungen:

  • server_b wird von den voreingestellten rsa_keys abgerufen.
  • server_a: Unix
  • server_b: ubuntu
  • kann SCP-Dateien von/zu diesen Servern ohne Probleme

Das Endziel zu verschieben oder zu kopieren/Entfernen von Dateien ist.

+0

Solange Sie 'ssh' Zugriff auf alle 3 haben, können Sie 'scp' oder' rsync' an alle 3 senden. Sie können 'a-> b-> c' nicht in einem einzigen Befehl ohne Port- Weiterleitung 'c auf b'. Abgesehen davon ist es wirklich kein Unterschied zu einer lokalen Kopie. Wenn Sie 'rsync' nicht verwendet haben, ist es bei weitem das Schweizer Armeemesser von entfernten (und lokalen) Dateiübertragungen. Es lohnt sich zu lernen, da es normalerweise bei den meisten (wenn nicht allen) Distributionen installiert ist. –

Antwort

2

Es gibt zwei Möglichkeiten:

  1. Connect server_a-server_b und tun lokale Kopie:

    ssh [email protected]_b "cp /my_folder/my_file.xml /my_new_folder/" 
    
  2. kopieren Sie über die server_a. Ihre Methode würde die server_b erfordern der Lage sein, sich selbst zu authentifizieren, das ist wahrscheinlich nicht der Fall:

    scp -3 [email protected]_b:/my_folder/my_file.xml [email protected]_b:/my_new_folder/ 
    

Beachten Sie auch, dass Ihr Code kopiert nur eine Datei und nicht die Dateien, wie Sie in den Titel schreiben.

+0

Jakuje, die erste Option funktionierte für mehrere Dateien. 'ssh user @ server_b "cp /mein_ordner/*.xml/my_neu_ordner /' ' –

0

Wenn Sie sich auf dem Server angemeldet sind, warum sind Authentifizieren Sie wieder:

scp [email protected]_b:/my_folder/my_file.xml [email protected]_b:/my_new_folder/ 

Sie in das Verzeichnis der Datei sein sollte oder einfach scp verwenden und -v Parameter, um die Debug-Informationen zu sehen.

Run wie folgt:

scp -v /my_folder/my_file.xml [email protected]_b:/my_new_folder/ 

Es ist kein Verzeichnis noch es ist rekursiv, so dass Sie -r Parameter nicht benötigen.