rsync - link-dest não vinculando

0

Estou usando o rsync para criar backups do meu site. Gostaria de usar --link-dest para vincular a backups mais antigos e reduzir o armazenamento necessário, para que os arquivos inalterados duplicados não sejam armazenados várias vezes.

Eu tentei várias combinações de caminhos diferentes, tentando entender a documentação. Pelo que entendi, o primeiro caminho precisa ser o caminho relativo completo de onde o arquivo de script é executado. O último caminho, é apenas o nome da pasta de destino sem um caminho?

--link-dest=DIR This option behaves like --copy-dest, but unchanged files are hard linked from DIR to the destination directory. The files must be identical in all preserved attributes (e.g. permissions, possibly ownership) in order for the files to be linked together. An example: CW rsync -av --link-dest=$PWD/prior_dir host:src_dir/ new_dir/

Eu obviamente não estou entendendo isso corretamente, já que tudo que eu experimento falha, com uma cópia completa dos arquivos sendo criados.

Aqui está um exemplo do que tenho atualmente:

rsync -zavx -e 'ssh -p22' \
    --numeric-ids \
    --delete -r \
    --link-dest=../backups/websites/testsite.co.uk/17-06-2018/ [email protected]:~/public_html 18-06-2018/;

Alguém é capaz de esclarecer quais devem ser os caminhos?

O arquivo .sh do script está localizado no meu computador em:

/Users/myname/Desktop/

Então os caminhos completos para meus diretórios são:

/Users/myname/Desktop/backups/websites/testsite.co.uk/17-06-2018/
/Users/myname/Desktop/backups/websites/testsite.co.uk/18-06-2018/

Qualquer ajuda com direção seria apreciada.

    
por ccdavies 18.06.2018 / 11:08

1 resposta

0

rsync -av --link-dest=/path/to/previous/backup/ source/ /path/to/this/backup/

No seu caso, altere source/ para [email protected]:public_html/ (observe que ~ provavelmente não é necessário e que deve haver / no final) e, em seguida, use os caminhos absolutos na máquina local, se possível. O uso de caminhos absolutos permite que você execute o comando sem se importar muito com o diretório em que você o executa.

-e 'ssh -p22' é usado por padrão, portanto você não precisa dele e -r está incluído na opção -a .

    
por 18.06.2018 / 11:39