Puedes conectarte a un equipo remoto mediante FTP para descargar el contenido automáticamente. Para ello, hacemos uso de lftp y el comando mirror.
Este script te permite sincronizar automáticamente archivos desde un servidor FTP remoto:
#!/bin/bash
export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
# Configuración del servidor FTP
FTP_HOST='IP.Servidor.Remoto'
FTP_USER='Login'
FTP_PASS='Pass'
# Directorio de destino local
BackupDestination='/home/backup'
# Ejecutar sincronización
lftp -e "set ftp:ssl-allow no" << EOF
open ${FTP_HOST}
user ${FTP_USER} ${FTP_PASS}
mirror -e . ${BackupDestination}
bye
EOF
| Variable | Descripción | Ejemplo |
|---|---|---|
FTP_HOST |
Dirección IP o dominio del servidor FTP | 192.168.1.100 |
FTP_USER |
Usuario de acceso FTP | usuario_ftp |
FTP_PASS |
Contraseña del usuario FTP | contraseña_segura |
BackupDestination |
Ruta local donde se guardarán los archivos | /home/backup |
| Opción | Descripción |
|---|---|
-e |
Elimina archivos locales que no existen en el servidor remoto |
. |
Directorio actual del servidor remoto |
Si no tienes lftp instalado, puedes hacerlo con:
# Debian/Ubuntu
apt install lftp -y
# CentOS/RHEL
yum install lftp -y
Para ejecutar el script automáticamente, añádelo a tu crontab:
# Editar crontab
crontab -e
# Ejecutar cada hora
0 * * * * /ruta/al/script.sh
# Ejecutar diariamente a las 3:00 AM
0 3 * * * /ruta/al/script.sh
💡 Tip: Asegúrate de dar permisos de ejecución al script con
chmod +x script.sh