Frage Wie kann ich Dateien von UNIX nach Windows übertragen?


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

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

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

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

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

Wie auch immer, wenn ich die Akte in der C fahre auf dem Windows-Server, ich finde nichts. Warum wird die Datei nicht angezeigt?


4
2017-10-04 10:12


Ursprung


Haben Sie die Suchfunktion von Windows verwendet, um die kopierte Datei zu finden? Vielleicht ist es da, aber nicht an dem Ort, an dem du schaust? - Olfan


Antworten:


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

IIRC copssh basiert auf Cygwin, was du wahrscheinlich ausführen musst ist:

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

Eine Alternative zum Kopieren in einen SSH-Dienst auf der Windows-Maschine ist die Verwendung eines GUI-Clients wie z WinSCP Klicken Sie auf der Windows-Box auf die Unix-Maschine und ziehen Sie die Dateien über diesen Weg - obwohl dies nicht geeignet ist, wenn Sie versuchen, den Prozess zu automatisieren.

Wenn Sie privilegierten Zugriff auf die Unix-Maschine haben (d. H. Sie sind oder können über Sudo oder ähnliche, root) und die entsprechende Unterstützung installiert haben, könnten Sie einfach die Dateien auf eine Windows-Freigabe kopieren. Sie sagen nicht, was Unix Sie verwenden. Für Ubuntu und ähnliche Überprüfung, dass Unterstützung vorhanden ist und die Installation, wenn nicht, kann mit durchgeführt werden sudo aptitude install smbfsDu kannst ihnen eine Windwos-Aktie mit sowas einbinden sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName (wobei 11.22.33.44 die IP-Adresse des Windows-Rechners ist, abhängig von Ihrem Netzwerk-Setup können Sie möglicherweise auf den Rechner anhand des Namens und nicht der Adresse verweisen). Sobald Sie das getan haben, können Sie einfach die grundlegenden Dateiverwaltungstools verwenden (cp, mv, ...) mit dieser Windows-Freigabe zu interagieren und anzurufen umount /mnt/tmp wenn du fertig bist. Vielleicht möchten Sie einen aussagekräftigeren Mount-Punktnamen als / mnt / tmp auswählen. Sie können natürlich den Share gemountet lassen, wenn die Übertragung der Daten automatisiert / geplant werden soll. Bei dieser Methode wird davon ausgegangen, dass der Unix-Computer die Dateifreigaben der Windows-Maschine durch eventuell vorhandene Firewall-Vereinbarungen sehen kann.


9
2017-10-04 11:08



CopSSH, das die Frage erwähnt, basiert auf Cygwins Port von OpenSSH, also erwarte ich, dass es sich fast identisch verhält. Für andere SSH / SFTP / SCP-Implementierungen müssen Sie möglicherweise Laufwerksnamen und Pfadtrennzeichen im Windows-Stil verwenden. In diesem Fall würde der Befehl in der Frage wahrscheinlich ein wenig mehr entkommen, um zu vermeiden, dass diese Zeichen von der Shell interpretiert werden Andere Seite. - David Spillett


Sie können es auch umgekehrt machen und Dateien von der Windows-Seite ziehen, anstatt von der Unix-Seite zu drücken. Sehen Sie sich Tools an wie WinSCP Dies ist ein grafisches Tool für SCP-Dateiübertragungen, mit dem Sie zwischen dem Windows Explorer oder dem Norton Commander-Look & Feel wählen können, die beide intuitiv für Sie sein sollten. Sobald Sie eingeloggt sind, können Sie zu den interessanten Dateien "Windows Way" navigieren und diese per Drag & Drop dorthin ziehen, wo Sie sie haben möchten.


2
2017-10-06 14:14





Benutzen WinSCP Werkzeug. Klappt wunderbar.


2
2017-12-11 19:48





Ich habe das einfach von einem Linux-Server zu einem Windows-Server gemacht und es verifiziert.

scp test.txt someguy @ someserver: / tmp /

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


1
2017-12-11 19:31





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 der Befehlszeilen-scp verwenden, da Sie sich nicht damit auskennen und es offensichtlich nicht skripten müssen.


-1
2017-10-04 12:21



Samba ist ein großes Sicherheitsrisiko. Bei der Installation von Samba tritt viel Datei-Diebstahl auf. - Sun
Was meinst du mit "Pilfering"? - CarlF
cvedetails.com/vendor/102/Samba.html - Sun
@Sun Windows hat noch mehr Schwachstellen, so dass Microsoft tatsächlich monatliche Updates herausgeben muss. Manchmal mehr als 12 pro Monat. Samba ist nicht von Natur aus anfälliger, da sie das Microsoft-basierte Protokoll sprechen. Solange Sie es richtig sichern, sollte Samba kein Problem sein. Sie können die Datei immer aus Fenstern auf ein anderes Volume kopieren und einfügen, dann ist die Freigabe leer. - cybernard