tutorial skipping incremental examples linux unix backup rsync directory

linux - incremental - rsync skipping directory



rsync imprime "omitiendo un archivo no regular" para lo que parece ser un directorio regular (5)

Realizo una copia de seguridad de mis archivos utilizando rsync. Justo después de una sincronización, lo ejecuté esperando ver nada, pero en cambio parecía que se estaba saltando directorios. (Obviamente) he cambiado los nombres, pero creo que todavía he capturado toda la información que pude. ¿Que esta pasando aqui?

$ ls -l /source/backup/myfiles drwxr-xr-x 2 me me 4096 2010-10-03 14:00 foo drwxr-xr-x 2 me me 4096 2011-08-03 23:49 bar drwxr-xr-x 2 me me 4096 2011-08-18 18:58 baz $ ls -l /destination/backup/myfiles drwxr-xr-x 2 me me 4096 2010-10-03 14:00 foo drwxr-xr-x 2 me me 4096 2011-08-03 23:49 bar drwxr-xr-x 2 me me 4096 2011-08-18 18:58 baz $ file /source/backup/myfiles/foo /source/backup/myfiles/foo/: directory

Luego sincronizo (sin esperar cambios):

$ rsync -rtvp /source/backup /destination sending incremental file list backup/myfiles skipping non-regular file "backup/myfiles/foo" skipping non-regular file "backup/myfiles/bar"

Y aquí está la parte rara:

$ echo ''hi'' > /source/backup/myfiles/foo/test $ rsync -rtvp /source/backup /destination sending incremental file list backup/myfiles backup/myfiles/foo backup/myfiles/foo/test skipping non-regular file "backup/myfiles/foo" skipping non-regular file "backup/myfiles/bar"

Así funcionó:

$ ls -l /source/backup/myfiles/foo -rw-r--r-- 1 me me 3126091 2010-06-15 22:22 IMGP1856.JPG -rw-r--r-- 1 me me 3473038 2010-06-15 22:30 P1010615.JPG -rw-r--r-- 1 me me 3 2011-08-24 13:53 test $ ls -l /destination/backup/myfiles/foo -rw-r--r-- 1 me me 3126091 2010-06-15 22:22 IMGP1856.JPG -rw-r--r-- 1 me me 3473038 2010-06-15 22:30 P1010615.JPG -rw-r--r-- 1 me me 3 2011-08-24 13:53 test

pero aún:

$ rsync -rtvp /source/backup /destination sending incremental file list backup/myfiles skipping non-regular file "backup/myfiles/foo" skipping non-regular file "backup/myfiles/bar"

Otras notas:

Mis directorios reales "foo" y "bar" tienen espacios, pero no otros caracteres extraños. Otros directorios tienen espacios y no tienen problema. Me di cuenta y no vi diferencias entre los directorios que no funcionan con rsync y los que sí lo hacen.

Si necesitas más información, solo pregunta.


¿Está absolutamente seguro de que esos archivos individuales no son enlaces simbólicos?

Rsync tiene algunos indicadores útiles como -l que "copiarán enlaces simbólicos como enlaces simbólicos". Añadiendo -l a tu comando:

rsync -rtvpl /source/backup /destination

Creo que los enlaces simbólicos se omiten por defecto porque pueden ser un riesgo de seguridad. Consulte la página del manual o --help para obtener más información sobre esto:

rsync --help | grep link

Para verificar que estos son enlaces simbólicos o proactivamente para encontrar enlaces simbólicos, puede usar el archivo o encontrar :

$ file /path/to/file /path/to/file: symbolic link to `/path/file` $ find /path -type l /path/to/file


¿Está absolutamente seguro de que no es un directorio de enlace simbólico?

prueba un

file /source/backup/myfiles/foo

para asegurarse de que es un directorio

Además, podría ser un intento de montaje en bucle invertido

mount

y asegúrese de que / source / backup / myfiles / foo no esté en la lista.


Debes probar el siguiente comando, lo más probable es que funcione para ti:

rsync -ravz /source/backup /destination


Personalmente siempre uso esta sintaxis en mi script y funciona para hacer una copia de seguridad del sistema intire (omitiendo sys / * & proc / * nfs4 / *)

sudo rsync --delete --stats --exclude-from $EXCLUDE -rlptgoDv / $TARGET/ | tee -a $LOG

Aquí está mi script ejecutado por el cron de root diariamente:

#!/bin/bash # NFS="/nfs4" HOSTNAME=`hostname` TIMESTAMP=`date "+%Y%m%d_%H%M%S"` EXCLUDE="/home/gcclinux/Backups/root-rsync.excludes" TARGET="${NFS}/${HOSTNAME}/SYS" LOGDIR="${NFS}/${HOSTNAME}/SYS-LOG" CMD=`/usr/bin/stat -f -L -c %T ${NFS}` ## CHECK IF NFS IS MOUNTED... if [[ ! $CMD == "nfs" ]];then echo "NFS NOT MOUNTED" exit 1 fi ## CHECK IF LOG DIRECTORY EXIST if [ ! -d "$LOGDIR" ]; then /bin/mkdir -p $LOGDIR fi ## CREATE LOG HEADER LOG=$LOGDIR/"rsync_result."$TIMESTAMP".txt" echo "-------------------------------------------------------" | tee -a $LOG echo `date` | tee -a $LOG echo "" | tee -a $LOG ## START RUNNING BACKUP /usr/bin/rsync --delete --stats --exclude-from $EXCLUDE -rlptgoDv / $TARGET/ | tee -a $LOG


Puedes probar lo siguiente, funcionará.

rsync -rtvp /source/backup /destination