Como posso excluir arquivos por padrão com o rsync?


12

Como posso excluir arquivos por padrão com o rsync? Aqui está como minha sintaxe rsync normal começa:

rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...

Já vi muitas menções à configuração do /etc/rsyncd.confarquivo, mas talvez isso seja mais para o daemon do que para o comando rsync.

É possível ter algumas exclusões padrão para rsync quando chamadas da linha de comando, como na minha sintaxe padrão acima?

Respostas:


10

Adicione suas exclusões a um arquivo e use --exclude-from = / path / to / exclude_file

por exemplo

# cat rsync.excludes
.ht*
error_log
.DS*
old
...

# rsync --exclude-from=rsync.excludes

1
parece que a sintaxe é --exclude-frome não, --exclude-filemas caso contrário, esse parece ser o ticket. obrigado!
Cwd

5

Não, rsyncnão possui um arquivo de configuração padrão que será lido na chamada. O melhor que você pode fazer é o que o @ frogstarr78 diz e criar um arquivo de texto com padrões, nomes de arquivos e diretórios a serem excluídos e depois apontar rsyncpara ele --exclude-from=filename.


2
rsync does not have a default configuration file- que é decepcionante
cwd

3

Enquanto o rsync não permite definir opções padrão, você pode criar um script de wrapper e colocá-lo mais alto em seu $ PATH do que o binário do rsync.

Este é o meu wrapper rsync que vive em ~/bin/rsync

#!/bin/sh

# Set path to the rsync binary
RSYNC=/usr/bin/rsync

# Look for these exclude files
IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore)

EXCLUDE_FROM=""
for f in ${IGNORE_FILES[@]}; do
  if [[ -e $f ]]; then
    EXCLUDE_FROM="$EXCLUDE_FROM --exclude-from=$f "
  fi
done
$RSYNC $EXCLUDE_FROM "$@"

Ele vai procurar ~/.rsyncignore, ./.gitignore,./.rsyncignore arquivos e, se algum deles existe, usá-los como padrão --exclude-fromargumentos.

Basta alterar o RSYNC e IGNORE_FILES para se adequar ao seu ambiente e preferências.


0

--exclude "/ *" excluirá tudo por padrão. Aqui está um exemplo:

rsync -av --include "bin /" --exclude "/ *" / source_dir / / dest_dir /
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.