rsync imprime" skipping non-regular file " pour ce qui semble être un répertoire régulier

je sauvegarde mes fichiers en utilisant rsync. Juste après une synchronisation, Je l'ai lancé en m'attendant à ne rien voir, mais au lieu de ça, il avait l'air de sauter des répertoires. J'ai (évidemment) changé de nom, mais je crois que j'ai quand même saisi toutes les informations que j'ai pu. Ce qui se passe ici?

$ 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

Puis-je synchroniser (attendons pas de changements):

$ 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"

Et voici ce qui est curieux:

$ 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"

Donc il a travaillé:

$ 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

mais encore:

$ 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"

autres notes:

mes répertoires actuels "foo" et " bar " ont des espaces, mais pas d'autres caractères étranges. Les autres répertoires ont des espaces et n'ont aucun problème. Je "stat" - ed et ne vois aucune différence entre les annuaires qui ne rsync et ceux qui le font.

si vous avez besoin de plus d'information, il suffit de demander.

27
demandé sur Luke Girvin 2011-08-24 22:28:46

5 réponses

Êtes-vous absolument sûr que ces fichiers les liens symboliques ne sont-ils pas?

Rsync a quelques drapeaux utiles tels que -l "copier les liens symboliques comme liens symboliques". L'ajout d' -l à votre commandement:

rsync -rtvpl /source/backup /destination

je crois que les liens symboliques sont omis par défaut parce qu'ils peuvent être un risque de sécurité. Consultez la page de manuel ou --help pour plus d'informations sur ceci:

rsync --help | grep link

pour vérifier ce sont des liens symboliques ou pro-activement pour trouver des liens symboliques, vous pouvez utiliser le fichier ou trouver:

$ file /path/to/file
/path/to/file: symbolic link to `/path/file`
$ find /path -type l
/path/to/file
35
répondu zaTricky 2018-07-16 11:17:02

Êtes-vous absolument sûr que ce n'est pas un répertoire de liens symboliques?

a:

file /source/backup/myfiles/foo

pour vous assurer que c'est un répertoire

aussi, il pourrait très bien être un mont de loopback essayez

mount

et assurez-vous que /source/backup/myfiles/foo ne figure pas dans la liste.

4
répondu Gauthic 2011-08-24 18:38:05

Vous devriez essayer la commande ci-dessous, plus probablement, il va travailler pour vous:

rsync -ravz /source/backup /destination
1
répondu mSatyam 2014-06-27 07:00:31

Vous pouvez essayer ce qui suit, il va fonctionner

rsync -rtvp /source/backup /destination
0
répondu Premjith 2014-01-03 15:05:18

personnellement j'utilise toujours cette syntaxe dans mon script et je travaille un treat pour sauvegarder le système d'entrée (skipping sys / * & proc / * nfs4/*)

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

Voici mon script exécuté par le cron de root daily:

#!/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
0
répondu gcclinux 2018-06-14 10:32:06