O rsync pode ser usado para fazer apenas hard links, não cópias? [duplicado]

3

Estou trabalhando em um sistema para fazer o backup automático do meu computador usando rsync e o aplicativo do Google Drive (eu tenho um computador Macintosh). (Esse aplicativo cria um diretório cujo conteúdo é salvo na nuvem do Google Drive.) A ideia do sistema de backup é copiar (automaticamente) os arquivos para o diretório do Google Drive (usando rsync , de preferência) e fazer o upload do diretório para a nuvem .

Este sistema tem uma grande desvantagem, no entanto: desperdício de memória. Todo arquivo que eu faço backup tem que ser copiado para um segundo local no meu computador, dobrando o espaço que o arquivo usa. Seria muito mais memória eficiente para criar links físicos em vez de cópias. Gostaria de duplicar minha árvore de diretórios usando hard links e atualizar a duplicata quando o original for alterado.

Posso usar rsync para criar links físicos em vez de cópias? Acho que isso pode ser possível com a opção link--dest= , mas não consigo descobrir.

Editar : alguns esclarecimentos, em resposta ao feedback.

  1. Esta questão foi listada como uma duplicata de rsync --link-dest não funciona como esperado com links simbólicos . Eu não entendo porque as perguntas são as mesmas. Eu entendo que a semelhança tem a ver com o uso da opção --link-dest= para criar hardlinks. Mas isso é o que eu não entendo como fazer! Então, não estou satisfeito com a pergunta duplicada. Parece que usar --link-dest= para fazer links de hardware só funciona se você já tiver um backup para compará-lo.
  2. Não sou proficiente em computadores em comparação com os usuários deste site. Se a resposta à minha pergunta for algo como "isso é fácil, apenas leia a man page para rsync mais cuidadosamente" ou algo assim, eu farei isso.
  3. Estou perfeitamente feliz em usar outro utilitário bash para obter a funcionalidade que estou procurando! Por acaso gosto de rsync , mas estou aberto a outras opções. O JdeBP sugeriu usar pax , por exemplo.
por user134824 30.06.2016 / 08:45

1 resposta

3

O método usual é (escrevendo da memória):

NEWBACKUP='date +%s' # or some other format
cp -al "$OLDBACKUP" "$NEWBACKUP"
rsync -aH --delete "$SOURCE" "$NEWBACKUP"

Confira Backups fáceis no estilo de instantâneos automatizados com Linux e Rsync

Existe também uma opção --link-dest no rsync que eu nunca investiguei corretamente.

    
por 30.06.2016 / 09:25