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
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" ...
Eu tenho visto muita menção de configurar o arquivo /etc/rsyncd.conf
, mas talvez seja mais para o daemon do que para o comando rsync.
É possível ter algumas exclusões padrão para o rsync quando chamado pela linha de comando, como na minha sintaxe padrão acima?
Não, rsync
não possui um arquivo de configuração padrão que será lido na invocação. O melhor que você pode fazer é o que @ frogstarr78 diz e criar um arquivo de texto com padrões, nomes de arquivos e diretórios para excluir e, em seguida, apontar rsync
para ele com --exclude-from=filename
.
Enquanto o rsync não permite que você defina opções padrão, você pode criar um script wrapper e colocá-lo mais alto em seu $ PATH do que o binário 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 procurará ~/.rsyncignore
, ./.gitignore
, ./.rsyncignore
arquivos e, se algum deles existir, use-os como argumentos --exclude-from
padrão.
Basta alterar o RSYNC e IGNORE_FILES para se adequar ao seu ambiente e preferências.
Tags configuration rsync files linux