Wie kann ich Dateien von UNIX auf Windows?

Ich möchte eine Datei von einem UNIX-Server auf einen Windows 2003-Server übertragen, also habe ich copssh auf den Windows-Server heruntergeladen und openssh ist bereits auf dem UNIX-Server installiert.

Wenn ich den folgenden Befehl ausführe (auf dem UNIX-Server):

scp -r /file_in_unix/ user@windows_hostname:\c:\\\

Die folgende Ausgabe erscheint (auf dem Bildschirm des UNIX-Servers):

100% |***************************************************************|   562       00:00

Wenn ich jedoch Datei im Laufwerk C auf dem Windows Server sehe, finde ich nichts. Warum wird die Datei nicht angezeigt?

Author: phuclv, 2010-10-04

5 answers

Der Zielpfad sieht falsch aus - für die meisten Unix-Shells ist der Backslash ein Escape-Zeichen, keine Pfadmarkierung, daher vermute ich, dass die Datei mit einem ungeraden Dateinamen in das Stammverzeichnis des SSH-Benutzers gefallen ist.

IIRC copssh basiert auf cygwin, also was Sie wahrscheinlich ausführen mussten, ist:

scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/

Eine Alternative zum Kopieren in einen SSH-Dienst auf dem Windows-Computer besteht darin, einen GUI-Client wie WinSCP in der Windows-Box zu verwenden, um sich beim Unix-Computer anzumelden und die Dateien abzurufen auf diese Weise-obwohl dies nicht geeignet ist, wenn Sie versuchen, den Prozess zu automatisieren.

Wenn Sie privilegierten Zugriff auf dem Unix-Computer haben (dh Sie sind oder können über sudo oder ähnliches root werden) und den entsprechenden Support installiert haben, können Sie die Dateien einfach auf eine Windows-Freigabe kopieren. Sie sagen nicht, welches Unix Sie verwenden. Für Ubuntu und ähnliche Überprüfungen, ob Unterstützung vorhanden ist, und die Installation, wenn nicht, können Sie mit sudo aptitude install smbfs, Sie können auch eine Windwos-Freigabe mit etwas wie sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName (wobei 11.22.33.44 die IP-Adresse des Windows-Computers ist, können Sie je nach Netzwerkkonfiguration möglicherweise auf den Computer anhand des Namens und nicht anhand der Adresse verweisen.) Sobald Sie das getan haben, können Sie einfach die grundlegenden Dateiverwaltungstools verwenden(cp, mv, ...) um mit dieser Windows-Freigabe zu interagieren und umount /mnt/tmp wenn Sie fertig sind. Möglicherweise möchten Sie einen aussagekräftigeren Einhängepunktnamen als /mnt/tmp. Sie können die Freigabe natürlich hängen lassen, wenn die Übertragung der Daten erfolgen soll automatisiert / geplant. Diese Methode setzt voraus, dass der Unix-Computer die Dateihasen des Windows-Computers über alle Firewall-Anordnungen sehen kann, die zwischen ihnen existieren können.

 9
Author: David Spillett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-19 17:05:14

Sie können es auch umgekehrt tun und Dateien von der Windows-Seite ziehen, anstatt von der Unix-Seite zu drücken. Schauen Sie sich Tools wie WinSCP an, ein grafisches Tool für SCP-Dateiübertragungen, das Ihnen die Wahl zwischen dem Look and Feel von Windows Explorer oder Norton Commander gibt, die beide für Sie intuitiv sein sollten. Sobald Sie angemeldet sind, können Sie zu den Dateien von Interesse "the Windows way" navigieren und sie per Drag & Drop dorthin ziehen, wo Sie sie möchten.

 2
Author: Olfan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-06 14:14:31

Verwenden Sie WinSCP Werkzeug. Funktioniert wie ein Zauber.

 2
Author: Vinay Sheshadri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-12-11 19:48:35

Ich habe dies gerade von einem Linux-Server zu einem Windows-Server getan und es überprüft.

Scp-test.txt someguy@someserver:/tmp/

/ tmp befindet sich auf dem Laufwerk C eines Windows Servers. Es mochte nichts mit C zu tun, also ließ ich es fallen und es funktionierte.

 1
Author: Tim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-12-11 19:31:32

Warum nicht Samba auf der Unix-Box installieren? Dann können Sie Laufwerke zwischen den beiden Systemen zuordnen. Alternativ würde ich psftp (aus der Putty Suite) anstelle des Befehlszeilen-scp verwenden, da Sie damit nicht vertraut sind und es anscheinend nicht skripten müssen.

 -1
Author: CarlF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-04 12:21:31