Conectar e intercambiar archivos con Samba en la terminal

Conectar e intercambiar archivos con Samba en la terminal

Si tenemos instalada Samba en un máquina o en un dispositivo multimedia como el Mede8er, por ejemplo y queremos compartir o intercambiar archivos mediante la línea de comandos deberemos instalar en la máquina cliente el paquete smbclient.

Samba nos permite conectarnos al ordenador o dispositivo de una manera gráfica, ya sea desde Windows, MacOS o cualquier sistema gráfico en Linux, pero ¿y si tenemos un servidor sin entorno gráfico que tiene almacenado los datos a enviar al dispositivo? Aquí es donde entra la potencia de la terminal instlando el paquete que nos corresponde.

Lo primero, instalar smbclient.

Comprobamos que está instalado y lo verificamos.

Para continuar tenemos que conocder la IP de la máquina a la que nos vamos a conectar. Si es un dispositivo multimedia lo más probable es que no haya que autenticarse, por lo que escribiremos los siguiente:

donde ‘recurso’ es el nombre del recurso compartido en el dispositivo SMB. Si no sabemos su nombre, podremos listar todos los recursos disponibles en el dispositivo con el siguiente comando:

Pero si el sistema o dispositivo tuviese usuario y contraseña lo usaríamos de la siguiente manera:

Y en caso de que no quisiéramos enviar la contraseña y obligar a que nos la pida, lo usaríamos tal que así:

Bien, ya estamos conectados, por lo que nuestro prompt pasará a ser el siguiente:

Comandos dentro la terminal de Samba en la sesión de smbclient

Los comandos más comunes son los siguientes:

  • ls: Lista los archivos y directorios en el recurso compartido.
  • cd [directorio]: Cambia al directorio especificado.
  • get [archivo]: Descarga un archivo del recurso compartido a tu máquina local.
  • put [archivo]: Sube un archivo de tu máquina local al recurso compartido.
  • exit: Sale de la sesión de smbclient.

El directorio por defecto de la máquina desde la que nos conectamos es en el que nos encontramos cuando accedemos a smbclient.

Copiar un archivo con smbclient

Un ejemplo práctico es el siguiente para copiar (subir) un archivo: Nos conectamos

Accedemos a la carpeta aunque no es necesario si la especificamos en la ruta como se puede ver en el siguiente comando.

Copiamos el archivo indicando la carpeta o sin indicarla si ya hemos accedido a ella previamente.

Copiar múltiples archivos con smbclient

Si queremos copiar muchos archivos a la vez, no nos servirá put ya que este comando sirve para un solo archivo.

Para copiar muchos usamos el comando mput.

Aunque aquí nos podemos encontrar con un pequeño o gran impedimento que es que nos pedirá confirmación por cada uno de los archivos a subir, obligándonos a estar delante del teclado y atento a cada archivo.

También podemos hacer todo esto desde la línea de comandos sin interactuar con smbclient, es decir sin entrar en ‘Samba’, y para ello podemos usar smbclient con el comando -c y, a la vez, ejecutar comandos específicos. Por ejemplo:

Pero claro, con esta opción también nos irá preguntado la confirmación de copia archivo a archivo.

Veamos una de las posibles soluciones sin involucrar más comandos en la misma ecuación.

Creamos un script en bash que contenga un bucle de tantos ciclos como archivos tengamos y usamos el comando put.

lo guardamos con el nombre que queramos, por ejemplo script_copia.shy le damos permiso de ejecución:

Y lo ejecutamos:

Nos copiará todos los archivos que haya en el directorio al servidor o dispositivo Samba.

Error NT_STATUS_CONNECTION_DISCONNECTED

Si al intentar conectar te da este error: NT_STATUS_CONNECTION_DISCONNECTED

puedes solucionarlo abriendo el archivo /etc/samba/smb.conf y agregando las siguientes líneas en la sección [global]:

Después de este cambio, o mejor dicho añadido, tienes que reiniciar el servicio Samba.

Facebook
X
LinkedIn
WhatsApp
Email

Sobre mi

Trabajo en el desarrollo de webs profesionales desde hace más de 25 años.
También me dedico a mis proyectos personales.

Últimas notas publicadas

Categorías

Scroll al inicio