Senden von Dateien über Samba mit Kommandozeile


17

Ich habe mich gefragt, ob es eine Möglichkeit gibt, mit Samba Elemente über die Befehlszeile an einen Client-Computer zu senden (ich muss die Dateien vom Samba-Server senden). Ich weiß, ich könnte es immer gebrauchen, scpaber zuerst habe ich mich gefragt, ob es eine Möglichkeit gibt, dies mit Samba zu tun. Vielen Dank!

Antworten:


19

Verwenden Sie smbclientein Programm, das mit Samba geliefert wird:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file'

Es gibt viele Flags, -Umit denen sich der Name des Remotebenutzers vom lokalen unterscheiden kann.

Auf Systemen, die Samba in mehrere Binärpakete aufteilen, sind möglicherweise die Samba-Server installiert, fehlen jedoch noch smbclient. In einem solchen Fall, überprüfen Sie die Paket - Repository für ein Paket mit dem Namen smbclient, samba-clientoder ähnliches.


Ich erhalteConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
t0xic

Als ich schrieb //serveroben, ich meine , was Sie den Client - Computer anrufen, die in diesem Fall wirken als Server. Damit dies funktioniert, muss ein Ordner oder ein Laufwerk über SMB freigegeben sein.
Warren Young

Oh ... das wird bei mir nicht wirklich funktionieren. Ich denke, ich werde nur verwenden scp. Trotzdem danke!
Bis

@ fleebow8: Sie können einen SCP-Server eines Drittanbieters auf den Client-Computern installieren, aber Sie können im Windows-Explorer nicht mit der rechten Maustaste auf einen Ordner klicken und "Freigeben" sagen?
Warren Young

Ich habe ein bestimmtes Projekt, bei dem alles automatisch ablaufen soll.
Bis

12

curl unterstützt das smbProtokoll seit v7.40 : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


Das funktionierte gut für mich: curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir. Ich habe eine Liste aller verfügbaren Freigabenamen mitsmbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
Matthias Braun

Dies ist perfekt!
Psychozoikum

2

Wirklich arbeiten wird dies sein:

$ smbclient //server/share -c 'cd c:/remote/path ; put local-file remote-file'

local-file - Datei vom lokalen Rechner

Remote-Datei - Kopieren in diese Datei auf dem Remote-Computer


0

Eine andere Möglichkeit, wenn die Freigabe bereits per Sicherung gemountet ist

Wenn Sie einen Desktop mit Freigaben ausführen , die bereits von nautilus , caja oder einem anderen Dateimanager bereitgestellt wurden , verwenden Sie möglicherweise fuse (anstelle von smbclient ).

In diesem Fall finden Sie einige Mountpunkte unter:

ls -l /run/user/$UID/gvfs/
drwx------ 1 charlie charlie 0 Feb  2 10:04 smb-share:server=hostname,share=documents

Ja das ist ein Mountpoint !

df -h /run/user/$UID/gvfs/*
Filesystem      Size   Used  Avail  Use% Mounted on
gvfsd-fuse      16.2T  3.6T  12.6T   59% /run/user/1000/gvfs

Und Sie könnten es als reguläres Dateisystem verwenden.

cp $HOME/myfile \
    /run/user/$UID/gvfs/smb-share:server=hostname,share=documents/destpath/

0

smbclient Version 4.9.5-Debianund curl 7.64.0hat nicht für mich gearbeitet ( Linux kali 4.19.0-kali4-amd64)

Dies tat:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.