Conguración de rsync en el servidor FreeBSD:
Entramos al servidor desde la LAN via SSH:
$ ssh -l carlos -p 20243 192.168.3.1
password:
$ su
password:
# ee /usr/local/etc/rsyncd.conf
# Edit this file before running rsync daemon!!
Crear el usuario que será utlizado para realizar las copias de seguridad, y que sólo tendrá permisos de lectura sobre los datos a copiar:
# chmod 640 /usr/local/etc/rsyncd.conf
# pw useradd -n backup -G operator -m -h 0
# mkdir /backup
# chown backup:backup /backup
Falta crear el archivo rsyncd.secrets
# ee /usr/local/etc/rsyncd.secrets
backup:km+RBqGwpT2IMnF1
Guardar y salir
# rsync --daemon
# ps auwx |grep rsync
root 9087 0.0 0.1 12056 1984 ?? Is 8:05PM 0:00.00 /usr/local/bin/rsync --daemon
Solo root podrá leerlo:
# chmod 600 /usr/local/etc/rsyncd.secrets
Comprobar que puedo conectarme al demonio:
El cliente debe tener instalado rsync
--dry-run para visualizar qué se va a copiar antes crear la copia.
--dry-run realizar una prueba sin hacer cambios
--stats dar algunas estadísticas de transferencia de archivos
-z comprimir los datos del archivo durante la transferencia
La opción -a, ejecuta "-rlptgoD":
-r: recursivo
-l: copia los links simbólicos, como eso, links simbólicos
-p: conserva los permisos
-t: conserva los tiempos de modificación
-g: conserva el grupo
-o: conserva el propietario
-D: conserva los ficheros de dispositivo (–devices) así como los ficheros especiales (–specials)
$ rsync -avz --dry-run --stats -e 'ssh -p 20243' /home/carles backup@192.168.3.1:backup
$ rsync -avz --stats -e 'ssh -p 20243' /home/carles backup@192.168.3.1:backup
$ rsync -avz --stats -e 'ssh -p 20243' /mnt/freebdades backup@192.168.3.1:backup
Vamos a crear dos directorios llamados /tmp/source /tmp/destiny, generar archivos ficticios dentro del primero y crear un enlace directo.
mkdir /tmp/source /tmp/destiny for i in `seq 1 50`; do touch /tmp/foo/file$i; done ln -s /home/carles/rules_pfsense /tmp/source
El siguiente comando trasfiere archivos en modo "archive", lo que garantiza que los enlaces simbólicos, dispositivos, atributos, permisos, propiedad, etc. son conservados en la transferencia. Debido a que estos indicadores se utilizan con tanta frecuencia, la opción -a eqivalente a -rltpgoD actúa como un alias que los incluye a todos:
# rsync -av --stats /tmp/source/ /tmp/destiny
Hay una diferencia entre incluir una barra inclinada (/) al final de la ruta de origen, y su omisión, el primero trasladará todos los archivos dentro del directorio especificado, mientras que el segundo transferirá el propio directorio con todos los archivos dentro. El flag -v (feedback, verbose) para ver el estado de la transferencia incluido un resumen al final. --stats nos dará más datos estadísticos y -q (silencioso, quiet) suprime toda la salida; útil para los scripts cuando no se requiere retroalimentación.
Transferencia remota rscync
La sintaxis de rsync es similar a la de scp en transferencias remotas donde h = human-readable.
Otras opciones interesantes:
--exclude-from
Excluye archivos de la lista de un archivo, en líneas separadas
--exclude=".*/"
Excluye los archivos ocultos
--update
Actualiza los archivos en el destino sólo si la copia origen ha sido modificada.
Synology debe tener activado rsync, copia de seguridad remota y los puertos abiertos tanto en el router VDSL o ADSL como en el firewall que está antes de la red interna (LAN), así como un dominio DDNS configurado (si carece de una ip estática). Esto ya lo he explicado en entradas anteriores. Synology ofrece 1 dominio DDNS por equipo y para el servidor FreeBSD utilizo dnsdynamic.org:
No conectamos desde otra red para realizar la prueba. El puerto por defecto de SSH (22) no hace falta indicarlo, si es diferente sí.:
Transferir clave SSH
susi@linux-a95o:~> ssh -p 22 admin@naslinuxesgenial.synology.me The authenticity of host 'naslinuxesgenial.synoogy.me (95.23.148.14)' can't be established. ECDSA key fingerprint is ea:10:a6:80:97:46:63:20:45:63:3a:28:77:90:cd:19. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'naslinuxesgenial.synology.me,95.23.148.14' (ECDSA) to the list of known hosts. admin@naslinuxesgenial.synology.me's password: BusyBox v1.16.1 (2013-04-16 20:15:54 CST) built-in shell (ash) Enter 'help' for a list of built-in commands. ds112plus> exit susi@linux-a95o:~> mkdir /tmp/source /tmp/destiny susi@linux-a95o:~> for i in `seq 1 100`;do touch /tmp/source/file$i;done susi@linux-a95o:~> rsync -av /tmp/source/ /tmp/destiny susi@linux-a95o:~> ln -s /home/susi/Documentos/wlan_13Enviar datos al servidor remoto synology
susi@linux-a95o:~> rsync -avz --stats /tmp/destiny/ \
admin@naslinuxesgenial.synology.me:/volume1/freebsd_all/source/ admin@naslinuxesgenial.synology.me's password: sending incremental file list . source/ source/file1 source/file10 . . source/file95 source/file96 source/file97 source/file98 source/file99 source/wlan_13 -> /home/susi/Documentos/wlan_13 Number of files: 103 Number of files transferred: 100 Total file size: 29 bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 837 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 4460 Total bytes received: 1922sent 4460 bytes received 1922 bytes 750.82 bytes/sec
total size is 29 speedup is 0.00
susi@linux-a95o:~> rsync -avhz -e 'ssh -p 22' --stats /tmp/destiny/ admin@naslinuxesgenial.synology.me:/volume1/freebsd_all/source/ admin@naslinuxesgenial.synology.me's password: sending incremental file list Number of files: 103 Number of files transferred: 0 Total file size: 29 bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 837 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 851 Total bytes received: 13 sent 851 bytes received 13 bytes 101.65 bytes/sec total size is 29 speedup is 0.03 susi@linux-a95o:~>Desde un servidor remoto a local
susi@linux-a95o:~> rsync -azv admin@naslinuxesgenial.synology.me:/volume1/freebsd_all/source/ /tmp/destiny/
Si el servidor es FreeBSD el archivo /etc/rc.d/sshd_config debe incluir implicitamente al usuario backup, de lo contrario no será posible proseguir con la copia:
AllowUsers carles@192.168.3.60 backup@192.168.3.60
Desde el cliente con IP 192.168.3.60 (freebsd) y usuario backup (creado con anterioridad) ejecutamos rsync:
$ rsync -avz --stats /home/carles/datancp/* backup@freebsdsvr.linux.bcn:/backup/
############################# #!/bin/sh # Simple rsync "driver" script. (Uses SSH as the transport layer.) # http://www.scrounge.org/linux/rsync.html # Modificado y traducido al español por Crowley (http://www.mexicoextremo.com.mx) # Debe poder trabajar con Linux y otros Unix, incluyendo Mac OS # Sincroniza dos carpetas con sólo ejecutarlo. Sólo necesita cambiar los # parámetros para tenerlo funcionando # Nombre o IP de la máquina de destino DEST="respaldos.servidor.com" # Usuario que se conectará al servidor # Puede ser root, pero no se recomienda USER="root" # Directorio de origen BACKDIR="/carpeta/del/usuario/" # Directorio de destino (remoto) DESTDIR="/carpeta/de/destino/" # Archivo de exclusiones. Contiene comodines de los archivos a excluir # por ejemplo, *~, *.bak, etc. Una especificación por línea. # Se debe crear este archivo y descomentar la línea. Opcional # EXCLUDES=/root/bin/excludes # Opciones de prueba. Despliega las acciones, pero no las realiza. # OPTS="-n -vv -u -a --rsh=ssh --exclude-from=$EXCLUDES --stats --progress" # Realiza la copia, mostrando a detalle lo que hace. OPTS="-v -u -a --rsh=ssh --exclude-from=$EXCLUDES --stats" # Realiza la copia, pero no manda ningún mensaje. #OPTS="--archive --update --rsh=ssh --exclude-from=$EXCLUDES --quiet" # Variables de ambiente, en caso de necesitarlas cron export PATH=$PATH:/bin:/usr/bin:/usr/local/bin # Se ejecuta sólo si el $DEST responde. VAR=`ping -s 1 -c 1 $DEST > /dev/null; echo $?` if [ $VAR -eq 0 ]; then rsync $OPTS $BACKDIR $USER@$DEST:$DESTDIR else echo "No puedo conectarme a $DEST." fi #############################http://www.horus.es/ss/blog/copias-de-seguridad-con-rsync/
https://rsync.samba.org/ftp/rsync/rsyncd.conf.html
http://kb.liquidweb.com/
http://www.freebsddiary.org/rsync.
Unix es genial!.
No hay comentarios:
Publicar un comentario