Como excluir link simbólico em rsync / rsnapshot

1

Estou usando rsnapshot para gerenciar meus backups. O arquivo /home/foo/bar é um link simbólico para uma pasta e eu quero excluí-lo. A opção --exclude não funciona, porque se o padrão terminar com / , ele corresponderá a um diretório, não a um link simbólico.

Como eu poderia fazer isso?

A página rsync man diz:

if the pattern ends with a / then it will only match a directory, not a regular file, symlink, or device.

Então, o que estou perguntando é: como posso excluir de rsnapshot um link simbólico para uma pasta?

Se o link for /home/foo/bar , qual das seguintes linhas de configuração é a correta?

exclude /home/foo/bar/

exclude /home/foo/bar

exclude /home/foo/bar**

exclude /home/foo/bar***

Este é o arquivo de configuração que estou usando agora:

config_version  1.2
snapshot_root   /media/satellite/rsnapshot/

cmd_cp      /bin/cp
cmd_rm      /bin/rm
cmd_rsync   /usr/bin/rsync
cmd_logger  /usr/bin/logger

retain      hourly  6
retain      daily   7
retain      weekly  4

verbose     2
loglevel    3

lockfile    /var/run/rsnapshot.pid

exclude /home/roberto/media/
exclude /home/roberto/media
exclude /home/roberto/media**
exclude /home/roberto/media***

backup  /home/      localhost/
backup  /etc/       localhost/
backup  /usr/local/ localhost/
backup  /var/www/   localhost/

Onde /home/roberto/media é um link simbólico para /media , que é um diretório

    
por zar 16.06.2017 / 09:57

1 resposta

2

A menos que você defina rsync_short_args ou rsync_long_args no arquivo de configuração para rsnapshot , você usará rsync -a para realizar a cópia.

A ação padrão para rsync -a é copiar um symlink como um symlink e ignorar o destino do symlink. (Obviamente, se o destino do symlink estiver dentro da sua árvore de arquivos de origem, ele será copiado, mas isso é devido à sua posição, não porque é o destino de um link simbólico incluído.)

Se você quiser excluir o link simbólico em si, basta referenciá-lo em uma linha exclude :

exclude /foo/bar

Eu não incluí o líder /home porque essa é a raiz da sua árvore de origem e os filtros são sempre baseados na raiz da origem.

    
por 20.06.2017 / 10:12