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.