Publicada By Raul Blasco Herrera - Linux
Escenario: quiero hacer copia en mi Ubuntu (automática e incremental) de mis Datos (/media/Datos) a una unidad de red remota de windows (//servidor_windows_remoto/unidad_remota)
Para aquellos como yo, demasiado precavidos a veces, tal vez no os baste hacer una copia a un disco externo en nuestro PC y deseemos guardar además otra copia incremental en un servidor remoto windows.
Me refiero con “incremental” al hecho que los script que programamos con rsync siempre nos va a realizar copias de ficheros sin borrar los ficheros en el destino ya eliminados en el origen, por tanto esto es lo más similar a las copias incrementales.
En nuestro caso tenemos un Servidor Remoto con Windows 2003 Server y agregado al directorio activo. Comento esto solo por describir más la situación pero en principio no cambia NADA por estar o no agregado al dominio.
Paso 1: instalamos en ubuntu el paquete smbfs
sudo apt-get install smbfs
Paso 2: hay que crear un directorio donde vamos a cargar la unidad de red remota
sudo mkdir /media/Destino_Backup_Remoto
Paso 3: añadimos en /etc/fstab la unidad de red con estas credenciales
//servidor_windows_remoto/carpeta_remota /media/Destino_Backup_Remoto cifs uid=1000,gid=1000,credentials=/root/smbcredentials,iocharset=utf8, file_mode=0777,dir_mode=0777 0 0
Nota1.- Ojo aunque en el blog lo podais ver en varias lineas, solo se pone en 1 sola línea en el fichero fstab.
Nota2.- Almaceno las credenciales del usuario remoto en fichero que ubico en /root/smbcredentials con este contenido:
username=usuario_de_windows_remoto password=passwd_de_windows_remoto
que en mi caso son el usuario y passwd del directorio activo.
Nota3.- Acordaos de por seguridad hacer esto también: sudo chmod 600 /root/smbcredentials para reforzar la seguridad del fichero de password.
Paso 4.- y ahora creamos un fichero script “backup_remoto.sh” más o menos así:
#!/bin/sh LOG=/home/usuario/backup_remoto.log echo >> $LOG echo "------------------ INICIO ---------------" >> $LOG date +%F___%Hh%Mm >> $LOG echo >> $LOG rsync -a --human-readable --stats /media/Datos /media/Destino_Backup_Remoto >> $LOG echo "------------------ FINAL ----------------" >> $LOG tail --lines=17 backup_remoto.log | mutt -s 'Backup con rsync' usuario_ejemplo@gmail.com -a backup_remoto.log
Nota.- Utilizo mutt, que es un programa para enviarme el correo de notificación al final con las 17 últimas lineas, ademas agrego el fichero de log también.
Paso 5.- Programar la copia de seguridad con “crontab -e”
… este es resultado de “crontab -l” en mi ejemplo:
30 21 * * 1-5 /home/usuario/backup_remoto.sh
y ya está listo, a disfrutar.
otro ejemplo “MÁS VISUAL” de un internauta:
PD.- Si no queremos copias incrementales (copia modo espejo) debemos añadir otra linea en el script (en las lineas iniciales después de definir la variable de LOG) así:
rsync --delete -r -v /media/Datos /media/Destino_Backup_Remoto >> $LOG
… lo que nos borrará previamente aquellos ficheros en el Destino_Backup_Remoto que ya habíamos eliminado.
————————–
Revisión Julio de 2012:
He “topado” con posibles pega a la hora de sincronizar con permisos … os lo detallare muy pronto
Fuente:
https://wiki.ubuntu.com/MountWindowsSharesPermanently
9 enero 2012 a las 10:17:25
Hay alguna forma de limitar el espacio que va a ocupar la copia de seguridad? Es decir, una forma de decirle cuando llegues a los 300GB empieza a borrar lo más antiguo.
Muy buen tutorial !
16 enero 2012 a las 11:48:08
El rsync debería hacer una copia idéntica de un origen a un destino, supongo por tanto que lo que tu buscas no parece viable. Al borrar cosas antiguas ya difiere el origen del destino.
16 octubre 2012 a las 23:34:18
Excelente! muy bueno el tema del mutt. me sirvio mucho. gracias!