Invio di file su Samba con riga di comando


17

Mi chiedevo se esiste un modo per utilizzare Samba per inviare elementi a una macchina client tramite la riga di comando (devo inviare i file dal server Samba). So che potrei sempre usare, scpma prima mi chiedevo se c'è un modo per farlo con Samba. Grazie!

Risposte:


19

Usa smbclient, un programma fornito con Samba:

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

Esistono molti flag, ad esempio -Uper consentire al nome utente remoto di essere diverso da quello locale.

Sui sistemi che dividono Samba in più pacchetti binari, è possibile che i server Samba siano installati ma che manchino ancora smbclient. In tal caso una, controllare il vostro archivio dei pacchetti per un pacchetto di nome smbclient, samba-cliento simili.


Continuo a ricevereConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
t0xic

Quando ho scritto //serversopra, intendo come si chiama la macchina client, che in questo caso agisce come un server. Per funzionare, è necessario che una cartella o un'unità sia condivisa tramite SMB.
Warren Young,

Oh ... non funzionerà davvero per me. Immagino che userò solo scp. Grazie comunque!
t0xic,

@ fleebow8: è possibile installare un server SCP di terze parti sui computer client, ma non è possibile fare clic con il pulsante destro del mouse su una cartella in Esplora risorse e dire "Condividi"?
Warren Young,

Ho un progetto specifico che sto facendo dove voglio che tutto sia automatico.
t0xic,

12

curl supporta il smbprotocollo dalla v7.40 : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


Questo ha funzionato grande per me: curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir. Ho ottenuto un elenco di tutti i nomi condivisi disponibili consmbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
Matthias Braun,

questo è perfetto!
Psicozoico,

2

Davvero funzionante sarà questo:

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

local-file - file dal computer locale

file remoto - copia in questo file sul computer remoto


0

Un altro modo se la condivisione è già montata da un fusibile

Se si esegue un desktop con condivisioni già montate da nautilus , caja o qualsiasi altro file manager , è possibile utilizzare fuse (anziché smbclient ).

In tal caso, è possibile trovare alcuni punti di montaggio su:

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

Sì, questo è un 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

E potresti usarlo come un normale filesystem.

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

0

smbclient Version 4.9.5-Debiane curl 7.64.0non ha funzionato per me ( Linux kali 4.19.0-kali4-amd64)

Questo ha fatto:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.