Enviando arquivos pelo Samba com linha de comando


17

Eu queria saber se existe uma maneira de usar o Samba para enviar itens para uma máquina cliente através da linha de comando (eu preciso enviar os arquivos do servidor Samba). Eu sei que sempre poderia usar, scpmas primeiro fiquei pensando se existe uma maneira de fazer isso com o Samba. Obrigado!

Respostas:


19

Use smbclient, um programa que acompanha o Samba:

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

Existem muitos sinalizadores, como -Upara permitir que o nome do usuário remoto seja diferente do local.

Em sistemas que dividem o Samba em vários pacotes binários, você pode ter os servidores Samba instalados e ainda estar ausente smbclient. Em tal caso, um, verificar o seu repositório de pacotes de um pacote chamado smbclient, samba-clientou similar.


Eu continuo recebendoConnection to [IP] failed (Error NT_STATUS_CONNECTION_REFUSED)
t0xic

Quando escrevi //serveracima, quero dizer o que você está chamando de máquina cliente, que neste caso está atuando como servidor. Ele precisa ter uma pasta ou unidade compartilhada via SMB para que isso funcione.
Warren Young

Oh ... isso realmente não funciona para mim. Acho que vou usar scp. Obrigado mesmo assim!
T0xic 30/05

@ fleebow8: Você pode instalar um servidor SCP de terceiros nas máquinas clientes, mas não pode clicar com o botão direito do mouse em uma pasta no Windows Explorer e dizer "Compartilhar"?
Warren Young

Tenho um projeto específico que estou fazendo e quero que tudo seja automático.
T0xic 30/05

12

curl suporta o smbprotocolo desde a v7.40 : curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/


Isso funcionou muito bem para mim: curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain\UserName:thePassword" smb://172.16.17.52/ShareName/Path/To/Remote/Dir. Eu tenho uma lista de todos os nomes de nomes disponíveis comsmbclient -L //172.16.17.52 -U UserName%thePassword -W OurWindowsDomain
Matthias Braun

isto é perfeito!
Psicozóico 04/11

2

Realmente trabalhando será este:

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

arquivo local - arquivo da máquina local

arquivo remoto - copie para esse arquivo na máquina remota


0

Outra maneira, se o compartilhamento já estiver montado por fusível

Se você estiver executando uma área de trabalho com compartilhamentos já montados pelo nautilus , caja ou qualquer outro gerenciador de arquivos , poderá estar usando o fusível (em vez do smbclient ).

Nesse caso, você pode encontrar alguns pontos de montagem em:

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

Sim, este é um ponto de montagem !

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 você pode usá-lo como um sistema de arquivos regular.

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

0

smbclient Version 4.9.5-Debiane curl 7.64.0não funcionou para mim ( Linux kali 4.19.0-kali4-amd64)

Isso fez:

smbmap -H server -u username -p password --upload local-filename share\\remote-filename
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.