El mejor consejo sobre soluciones para realizar copys de security en NAS sobre WAN

¿Cuál es la mejor solución para la copy de security diaria de la carpeta Linux en el server NAS a través de WAN? Aquí está la situación: mi cliente ha expresado su deseo de que el código fuente de su proyecto se respalde todos los días en mi server local y luego se exporte a su NAS. Él me dio acceso a NAS a través del protocolo FTP, y ahora quiero usar cron scheduler para cargar ftp a su server. ¿Está bien y cómo se hace?

Según los comentarios rsync es una buena herramienta para usar. El uso básico de rsync simplemente refleja un directory. Por ejemplo:

 rsync -a --delete /source/dir /backup/dir 

Hará que el directory de copy de security coincida con la fuente; si hay algo en la copy de security que no está en la fuente, se eliminará ( --delete ), y si hay elementos que están en ambos, se actualizará en la copy de security si la timestamp en la fuente es más reciente (es decir, el file ha cambiado).

Tenga en count que también puede usar rsync través de SSH si no tiene el directory remoto montado localmente (y la máquina NAS también ejecuta un server ssh).

 rsync -a --delete user@ip:/source/dir /backup/dir 

Esto requiere que mantenga el directory espejo en su máquina de copy de security. Si desea realizar copys de security de las copys de security, puede archivar y comprimir esto:

 tar -cjf backup.tb2 /source/dir 

Esto se puede extraer con tar -xjf backup.tb2 . Para evitar que cada copy de security sobrescriba la última, podría usar una timestamp:

 tar -cjf backup.`date +%m%d%y`.tb2 /source/dir 

Esto generará un nombre de file con una timestamp MMDDYY, como backup.030814.tb2 .

Entonces, ese es un script de dos líneas que puede ejecutar diariamente a través de cron.

El enfoque más simple, suponiendo que quiera hacer una copy de security de la carpeta /foo sería crear un pequeño crontab simple para ejecutar rsync diariamente.

  1. Crea tu crontab ejecutando crontab -e . En la window del editor que aparecerá, agregue esta línea (suponiendo que su NAS esté montado localmente, puede usar ssh si no):

     @daily rsync -glprtu /foo /path/to/NAS/mount 
  2. Cierre la window del editor. Eso es todo, su carpeta será respaldada diariamente en su NAS.

Las opciones de rsync usadas en este ejemplo son:

 -g, --group preserve group -l, --links copy symlinks as symlinks -p, --perms preserve permissions -r, --recursive recurse into directories -t, --times preserve modification times -u, --update skip files that are newer on the receiver 

Te sugiero que leas a través de man rsync para más opciones, es una herramienta muy poderosa. Usted podría, por ejemplo, estar interesado en

 --delete delete extraneous files from dest dirs -z, --compress compress file data during the transfer -C, --cvs-exclude auto-ignore files in the same way CVS does 

ACTUALIZACIÓN: Si necesita hacer esto a través de ftp, le recomiendo que monte su NAS localmente primero:

  1. Instalar curlftps

     sudo aptitude install curlftpfs 
  2. Edite /etc/fstab y agregue una línea para el NAS:

     curlftpfs#ftpUsername:ftpPassword@ftp://ftpUrl /localDirectory fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,utf8 0 1 

Luego, apunte su command rsync al punto de assembly local.