Script Bash para conexión SFTP y subida de archivos

Vamos a crear un script en Bash que te permitirá conectarte a un servidor SFTP, navegar a una carpeta específica y subir archivos utilizando SCP. Asegúrate de tener instalado SSH y SCP en tu sistema.

Script Bash

#!/bin/bash
# Configuración de variables
SFTP_USER="tu_usuario"          # Reemplaza con tu nombre de usuario
SFTP_HOST="tu_servidor.com"     # Reemplaza con la dirección de tu servidor
REMOTE_DIR="/ruta/a/carpeta"    # Reemplaza con la ruta de la carpeta en el servidor
LOCAL_DIR="/ruta/a/archivos"     # Reemplaza con la ruta de la carpeta local donde están los archivos
# Conexión SFTP y subida de archivos
sftp "${SFTP_USER}@${SFTP_HOST}" <<EOF
cd ${REMOTE_DIR}
lcd ${LOCAL_DIR}
put *
bye
EOF
echo "Archivos subidos correctamente a ${REMOTE_DIR} en ${SFTP_HOST}."

Instrucciones

Crea el script:

Abre un terminal y crea un nuevo archivo, por ejemplo subir_archivos.sh:

nano subir_archivos.sh

(sustituye nano por el editor que utilices)

Copia el script:
Copia y pega el script anterior en el archivo.

Modifica las variables:
Cambia tu_usuario, tu_servidor.com, /ruta/a/carpeta, y /ruta/a/archivos con tus datos específicos.

Haz el script ejecutable:
Guarda el archivo y sal del editor. Luego, haz el script ejecutable:

chmod +x subir_archivos.sh

Ejecuta el script:
Ahora puedes ejecutar el script para subir tus archivos:

./subir_archivos.sh

Notas

- Autenticación: Asegúrate de que tu usuario tenga los permisos necesarios para acceder al servidor y a la carpeta especificada. Si utilizas autenticación por clave, asegúrate de que tu clave pública esté en el servidor.
- Archivos a subir: El comando put * subirá todos los archivos en el directorio local especificado. Si deseas subir archivos específicos, puedes reemplazar * con el nombre del archivo o usar patrones como *.txt para subir solo archivos de texto.
- Errores: Si encuentras errores, verifica que las rutas y credenciales sean correctas y que tengas acceso al servidor.

Este script te permitirá automatizar la subida de archivos a tu servidor SFTP (o al de tu hosting) de manera sencilla.

+ información al respecto en: Cómo usar SFTP para transferir archivos con un servidor remoto de manera segura