Accedemos al sistema linux e instalamos los paquetes cifs-utils para poder montar sistemas de ficheros compartidos desde un sistema Windows y curlftpfs para montar el servidor FTP remoto.
sudo apt install -y cifs-utilssudo apt install -y curlftpfs
Creamos un directorio para montar el recurso compartido Windows y otro para montar el espacio del servidor FTP remoto y otorgamos permisos de control total, aunque esto dependerá de la gestión de usuarios y grupos de como tengamos configurado el entorno Linux. (Como ejemplo se montará partiendo de /mnt).
mkdir /mnt/ftpbackup ; chmod -R 777 /mnt/ftpbackupmkdir /mnt/cifsbackup ; chmod -R 777 /mnt/cifsbackup
Montamos el recurso compartido cifs de Windows.
mount -t cifs //server/compartida /mnt/cifsbackup -o username=user,password=passw,domain=dominio
- //server/compartida: Será el recurso compartido cifs de Windows.
- /mnt/cifsbackup: Directorio que se usará para montar el recurso cifs de Windows en la máquina Linux.
- User, password y dominio: Será el usuario, contraseña y dominio si se trata de un usuario de dominio, si se trata de un usuario local de Windows sería el hostname de la máquina Windows.
Montamos el directorio del servidor FTP remoto en el directorio local de la máquina Linux. (Como ejemplo se montará partiendo de /mnt.)
curlftpfs user:passw@serverftp /mnt/ftpbackup
- user: Usuario de acceso al servidor FTP.
- passw: Password de acceso al servidor FTP.
- serverftp: URL, IP o hostname de acceso al servidor FTP.
- /mnt/ftpbackup: Directorio donde se montará el servidor FTP remoto en la máquina Windows.
Una vez montados ambos recursos solo queda realizar el backup y que sincronice los datos desde el recurso compartido cifs de Windows hacia el servidor FTP remoto, al estar montados en el sistema Linux estos se tratarían como directorios locales.
rsync -rtvp --log-file=/var/log/ficherolog /mnt/cifsbackup /mnt/ftpbackup
- r: Recursividad entre directorios.
- r: Preserva la modificación de fechas.
- v: Vervose, muestra más detalles.
- p: Preserva los permisos de los ficheros y directorios.
- --log-file=/var/log/ficherolog: Almacena los resultados en un fichero de log.
- /mnt/cifsbackup: Datos origen.
- /mnt/ftpbackup: Datos destino.
Para desmontar los recursos de los directorios.
Para automatizar este proceso podemos crear un fichero bash script .sh que monten ambos recursos, realize el backup con rsync, enviarse el fichero de log a una dirección de correo electrónico y finalmente desmontar ambos recursos para que no permanezacan en la máquina Linux si no lo deseamos.umount /mnt/ftpbackupumount /mnt/smbbackup
Si queremos programar la ejecución de este script .sh a una fecha/hora concreta añadimos el script a una nnueva línea en /etc/crontab de modo que se ejecute de forma programada.
Saludos!