Transferencia de archivos con smbclient
En este paso final, aprenderemos a transferir archivos entre nuestro sistema Linux y el recurso compartido SMB.
Reconexión al recurso compartido
Conectémonos de nuevo a nuestro recurso compartido SMB:
smbclient //localhost/testshare -U labex
Ingresa la contraseña cuando se te solicite:
Enter WORKGROUP\labex's password:
Deberías ver el prompt de smbclient:
Try "help" to get a list of possible commands.
smb: \>
Carga de archivos al recurso compartido
Subamos el archivo de prueba que creamos anteriormente al recurso compartido SMB. Primero, necesitamos verificar nuestro directorio local actual:
smb: \> !pwd
Esto ejecuta el comando pwd en tu sistema local y debería mostrar:
/home/labex/project
Necesitamos cambiar al directorio donde se encuentra nuestro archivo de prueba:
smb: \> lcd ~/project/smb-files
Verifica que estamos en el directorio correcto:
smb: \> !ls
Deberías ver:
test.txt
Ahora, subamos el archivo al recurso compartido SMB:
smb: \> put test.txt
Deberías ver un mensaje que indica que el archivo fue transferido:
putting file test.txt as \test.txt (38.5 kb/s) (average 38.5 kb/s)
Verifica que el archivo se subió:
smb: \> ls
Deberías 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
Descarga de archivos desde el recurso compartido
Ahora, descarguemos un archivo del recurso compartido SMB a nuestro sistema local. Primero, creemos un nuevo directorio para almacenar los archivos descargados:
smb: \> !mkdir -p ~/project/smb-downloads
Cambia a ese directorio:
smb: \> lcd ~/project/smb-downloads
Ahora, descarga el archivo:
smb: \> get shared-test.txt
Deberías ver un mensaje que indica que el archivo fue transferido:
getting file \shared-test.txt of size 37 as shared-test.txt (37.0 KiloBytes/sec) (average 37.0 KiloBytes/sec)
Verifica que el archivo se descargó:
smb: \> !ls
Deberías ver:
shared-test.txt
Uso de mget y mput para múltiples archivos
Los comandos mget y mput te permiten transferir múltiples archivos a la vez. Intentemos crear algunos archivos más en nuestro sistema local:
smb: \> !cd ~/project/smb-files && touch file1.txt file2.txt file3.txt
Ahora, subamos todos los archivos .txt a la vez:
smb: \> lcd ~/project/smb-files
smb: \> mput *.txt
Para cada archivo, se te pedirá confirmación. Escribe Y para confirmar cada transferencia:
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)
Si deseas transferir todos los archivos sin confirmación, puedes desactivar la solicitud:
smb: \> prompt
smb: \> mput *.txt
De manera similar, para descargar múltiples archivos:
smb: \> lcd ~/project/smb-downloads
smb: \> mget *.txt
Cuando hayas terminado, sal de la sesión de smbclient:
smb: \> quit
Comandos no interactivos
También puedes usar smbclient para ejecutar comandos sin entrar en el shell interactivo. Por ejemplo, para listar el contenido de un recurso compartido:
smbclient //localhost/testshare -U labex -c 'ls'
Ingresa la contraseña cuando se te solicite, y verás el listado del directorio:
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 descargar un archivo en un solo comando:
smbclient //localhost/testshare -U labex -c 'get test.txt /home/labex/project/test-download.txt'
Este comando descarga el archivo test.txt del recurso compartido y lo guarda como test-download.txt en tu directorio de proyecto.
Ahora tienes una buena comprensión de cómo usar smbclient para conectarte a recursos compartidos SMB, navegar por directorios y transferir archivos. Estas habilidades son esenciales cuando se trabaja en entornos mixtos Windows/Linux.