Question

Je suis en train de créer un script bash pour sauvegarder mes fichiers avec rsync.

Les sauvegardes sont tous d'un seul répertoire. Je veux que les fichiers nouveaux ou modifiés à sauvegarder.

À l'heure actuelle, je dis rsync de sauvegarder le répertoire, et de vérifier les fichiers par rapport à la dernière sauvegarde.

La façon dont je le fais est

THE_TIME=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/Backup/Current /usr/home/user/backup /Backup/Backup-$THE_TIME
rm -f /Backup/Current
ln -s /Backup/Backup-$THE_TIME /Backup/Current

Je suis assez sûr que j'ai la syntaxe correcte pour cela. Chaque sauvegarde vérifiera contre le dossier « actuel », et télécharger seulement comme necesary. Il supprimera ensuite le dossier en cours, et recréer le lien symbolique à la sauvegarde la plus récente, il a juste fait.

Je reçois une erreur quand je lance le script:

rsync: link "/Backup/Backup-2010-08-04-12:21:15/dgs1200series_manual_310.pdf"
     

=> /Backup/Current/dgs1200series_manual_310.pdf   échoué: Opération non prise en charge (45)

Le système d'exploitation hôte est en cours d'exécution le système de fichiers HFS, qui prend en charge la liaison dure. J'essaie de savoir si quelque chose d'autre ne supporte pas cela, ou si j'ai un problème dans mon code.

Merci pour toute aide

Edit:

Je suis en mesure de créer un lien dur sur ma machine locale. Je suis également en mesure de créer un lien dur sur le serveur distant (lorsque vous êtes connecté localement) Je ne suis pas en mesure de créer un lien dur sur le serveur distant quand il est monté via afp. Même si les deux fichiers existent sur le serveur.

Je suppose que c'est une limitation de afp.

Était-ce utile?

La solution

Deux choses de la page de manuel se démarquer qui vérifient la valeur:

  

Si ce fichier ne sont pas Linking, vérifiez leurs attributs. Aussi                 vérifier si certains attributs sont contraints à l'extérieur de se rsync de                 le contrôle, une telle option de montage qui squishes racine à un seul                 utilisateur ou monte un entraînement amovible avec la propriété générique (par exemple                 comme option « Ignorer les autorisations de ce volume » de OS X).

et

  

Notez que les versions rsync avant 2.6.1 avait un bug qui pouvait                 empêcher --link-dest de fonctionner correctement pour une non-super-utilisateur                 lorsque -o a été spécifié (ou implicitement par -a). Vous pouvez travailler autour                 ce bug en évitant l'option -o lors de l'envoi à un vieux rsync.

Avez-vous de l'option « ignorer la propriété » est activée? Quelle version de rsync avez-vous?

En outre, vous avez essayé de créer manuellement un hardlink similaire en utilisant ln à la ligne de commande?

Autres conseils

Juste au cas où votre ligne de commande est seulement un exemple: Assurez-vous de toujours spécifier le répertoire lien-dest avec absolue chemin! C'est quelque chose qui m'a pris un certain temps pour comprendre ...

Je ne sais pas si ce problème est le même, mais je sais que rsync ne peut pas synchroniser un fichier lorsque la destination est une partition FAT32 et le nom du fichier a un « : » (deux points) en elle. [Le système de fichiers de source est ext3, et la destination est FAT32]

Essayez de reconfigurer la commande date afin qu'il n'utilise pas deux points et voir si cela fait une différence.

par exemple.

THE_TIME=`date "+%Y-%m-%dT%H_%_%S"`
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top