De temps en temps, je dois effectuer plusieurs changements de migration importants sur les fichiers de données sur mon serveur, et je cherche un bon moyen de le faire. Je pensais à utiliser rsync pour dupliquer ma structure de répertoires en commençant par le dossier de données racine, en créant des liens durs vers tous les fichiers d'origine (certains d'entre eux sont plutôt gros), et je peux remplacer dans l'arborescence de destination uniquement les fichiers qui doivent être migrés. En fin de compte, je peux passer en toute sécurité des anciens fichiers aux nouveaux fichiers en deux mv
opérations.
Cependant, je n'arrive pas à obtenir rsync pour le faire. j'ai essayé
rsync -a --link-dest=$DATA $DATA $DATA/../upgrade_tmp
mais au lieu de créer des liens durs vers des fichiers, rsync les copie entièrement. Y a-t-il un problème avec le même répertoire source et link-dest?
ls -ilah
$SOURCE
répertoire dans un répertoire$TARGET
comme celui-ci:SOURCE='abs_path_to_backup'; TARGET='.'; rsync -a --link-dest=$(relpath $TARGET $SOURCE) $SOURCE/ $TARGET/
Ce que vous voulez, c'est "cp -al":
rsync -a
la source
cp -al
n'est malheureusement pas disponible sur mon système (Mac OS X 10.6). Je vais utiliser pax à la place ...L'
--link-dest
option dansrsync
est relative au répertoire de destination , pas au répertoire courant. Donc ce que vous voulez c'est:la source
--link-dest
option, si elle est relative , est relative au répertoire cible. Dans mon cas, c'est absolu. Même en le faisant par rapport au répertoire cible, cela ne fonctionne pas.Il s'avère qu'il est plus difficile de le faire qu'avec
rsync
d'autres outils. La bonne réponsersync
est celle de Steven Monai, mais la façon la plus simple de le faire est d'utiliser soitcp -al
oupax -rwl
sur des systèmes où-l
n'est pas une option valide pourcp
:ou
la source
Ça marche pour moi:
J'utilise la version 3.1.0 de rsync.
De l' homme :
la source
Peut essayer le lien suivant http://www.lessfs.com/wordpress/ c'est un travail sur COW (copie sur écriture) qui fera gagner du temps et de l'espace
la source
Créez d'abord les répertoires uniquement sur la destination:
Reliez ensuite les fichiers en dur uniquement:
la source
pax
comme indiqué dans mon commentaire ci-dessus, ce qui semble plus facile.Utilisez l'option -H pour conserver les liens physiques et lire la page de manuel.
la source