De tempos em tempos, tenho que executar várias grandes alterações de migração nos arquivos de dados no meu servidor e estou procurando uma boa maneira de fazer isso. Eu estava pensando em usar o rsync para duplicar minha estrutura de diretórios começando na pasta de dados raiz, criando links físicos para todos os arquivos originais (alguns deles são grandes) e posso sobrescrever na árvore de destino apenas os arquivos que precisam ser migrados. No final, eu posso alternar com segurança dos arquivos antigos para os novos com duas mv
operações.
No entanto, não consigo obter o rsync para fazer isso. eu tentei
rsync -a --link-dest=$DATA $DATA $DATA/../upgrade_tmp
mas, em vez de criar links físicos para arquivos, o rsync os copia completamente. Existe um problema ao usar o mesmo diretório de origem e link-dest?
ls -ilah
$SOURCE
directório numa$TARGET
dir assim:SOURCE='abs_path_to_backup'; TARGET='.'; rsync -a --link-dest=$(relpath $TARGET $SOURCE) $SOURCE/ $TARGET/
O que você quer é "cp -al":
rsync -a
fonte
cp -al
infelizmente não está disponível no meu sistema (Mac OS X 10.6). Em vez disso, vou usar pax ...A
--link-dest
opção inrsync
é relativa ao diretório de destino , não ao diretório atual. Então, o que você quer é:fonte
--link-dest
opção, se relativa , é relativa ao diretório de destino. No meu caso, é absoluto. Mesmo torná-lo relativo ao diretório de destino não faz esse trabalho.Acontece que é mais difícil fazer isso do
rsync
que com outras ferramentas. A resposta corretarsync
é a de Steven Monai, mas a maneira mais fácil de fazer isso é usar umcp -al
oupax -rwl
em sistemas onde-l
não é uma opção válida paracp
:ou
fonte
Funciona para mim:
Eu uso o rsync versão 3.1.0.
Do homem :
fonte
Pode tentar seguir o link http://www.lessfs.com/wordpress/ é um trabalho em COW (cópia na gravação) que economizará tempo e espaço
fonte
Primeiro, crie os diretórios apenas no destino:
Em seguida, vincule apenas os arquivos:
fonte
pax
como mostrado no meu comentário acima, o que parece mais fácil.Use a opção -H para preservar os Hardlinks e leia a página de manual.
fonte