Transferindo Arquivos com smbclient
Nesta etapa final, aprenderemos como transferir arquivos entre nosso sistema Linux e o compartilhamento SMB.
Reconectando ao Compartilhamento
Vamos nos conectar novamente ao nosso compartilhamento SMB:
smbclient //localhost/testshare -U labex
Insira a senha quando solicitado:
Enter WORKGROUP\labex's password:
Você deve ver o prompt do smbclient:
Try "help" to get a list of possible commands.
smb: \>
Carregando Arquivos para o Compartilhamento
Vamos carregar o arquivo de teste que criamos anteriormente para o compartilhamento SMB. Primeiro, precisamos verificar nosso diretório local atual:
smb: \> !pwd
Isso executa o comando pwd em seu sistema local e deve exibir:
/home/labex/project
Precisamos mudar para o diretório onde nosso arquivo de teste está localizado:
smb: \> lcd ~/project/smb-files
Verifique se estamos no diretório correto:
smb: \> !ls
Você deve ver:
test.txt
Agora, vamos carregar o arquivo para o compartilhamento SMB:
smb: \> put test.txt
Você deve ver uma mensagem indicando que o arquivo foi transferido:
putting file test.txt as \test.txt (38.5 kb/s) (average 38.5 kb/s)
Verifique se o arquivo foi carregado:
smb: \> ls
Você deve ver:
. D 0 Tue Nov 30 12:02:00 2022
.. D 0 Tue Nov 30 12:00:00 2022
shared-test.txt N 37 Tue Nov 30 12:00:00 2022
test-directory D 0 Tue Nov 30 12:01:00 2022
test.txt N 33 Tue Nov 30 12:02:00 2022
8467839 blocks of size 4096. 3524491 blocks available
Baixando Arquivos do Compartilhamento
Agora, vamos baixar um arquivo do compartilhamento SMB para nosso sistema local. Primeiro, vamos criar um novo diretório para armazenar os arquivos baixados:
smb: \> !mkdir -p ~/project/smb-downloads
Mude para esse diretório:
smb: \> lcd ~/project/smb-downloads
Agora, baixe o arquivo:
smb: \> get shared-test.txt
Você deve ver uma mensagem indicando que o arquivo foi transferido:
getting file \shared-test.txt of size 37 as shared-test.txt (37.0 KiloBytes/sec) (average 37.0 KiloBytes/sec)
Verifique se o arquivo foi baixado:
smb: \> !ls
Você deve ver:
shared-test.txt
Usando mget e mput para Vários Arquivos
Os comandos mget e mput permitem que você transfira vários arquivos de uma vez. Vamos tentar criar mais alguns arquivos em nosso sistema local:
smb: \> !cd ~/project/smb-files && touch file1.txt file2.txt file3.txt
Agora, vamos carregar todos os arquivos .txt de uma vez:
smb: \> lcd ~/project/smb-files
smb: \> mput *.txt
Para cada arquivo, você será solicitado a confirmar. Digite Y para confirmar cada transferência:
mput test.txt? Y
putting file test.txt as \test.txt (38.5 kb/s) (average 38.5 kb/s)
mput file1.txt? Y
putting file file1.txt as \file1.txt (0.0 kb/s) (average 19.2 kb/s)
mput file2.txt? Y
putting file file2.txt as \file2.txt (0.0 kb/s) (average 12.8 kb/s)
mput file3.txt? Y
putting file file3.txt as \file3.txt (0.0 kb/s) (average 9.6 kb/s)
Se você quiser transferir todos os arquivos sem confirmação, pode desativar a solicitação:
smb: \> prompt
smb: \> mput *.txt
Da mesma forma, para baixar vários arquivos:
smb: \> lcd ~/project/smb-downloads
smb: \> mget *.txt
Quando terminar, saia da sessão do smbclient:
smb: \> quit
Comandos Não Interativos
Você também pode usar smbclient para executar comandos sem entrar no shell interativo. Por exemplo, para listar o conteúdo de um compartilhamento:
smbclient //localhost/testshare -U labex -c 'ls'
Insira a senha quando solicitado e você verá a listagem do diretório:
Enter WORKGROUP\labex's password:
. D 0 Tue Nov 30 12:03:00 2022
.. D 0 Tue Nov 30 12:00:00 2022
file1.txt N 0 Tue Nov 30 12:03:00 2022
file2.txt N 0 Tue Nov 30 12:03:00 2022
file3.txt N 0 Tue Nov 30 12:03:00 2022
shared-test.txt N 37 Tue Nov 30 12:00:00 2022
test-directory D 0 Tue Nov 30 12:01:00 2022
test.txt N 33 Tue Nov 30 12:03:00 2022
8467839 blocks of size 4096. 3524491 blocks available
Para baixar um arquivo em um único comando:
smbclient //localhost/testshare -U labex -c 'get test.txt /home/labex/project/test-download.txt'
Este comando baixa o arquivo test.txt do compartilhamento e o salva como test-download.txt em seu diretório de projeto.
Agora você tem uma boa compreensão de como usar smbclient para se conectar a compartilhamentos SMB, navegar em diretórios e transferir arquivos. Essas habilidades são essenciais ao trabalhar em ambientes mistos Windows/Linux.