Rsync ile varsayılan olarak dosyaları nasıl hariç tutabilirim?


12

Rsync ile varsayılan olarak dosyaları nasıl hariç tutabilirim? Benim normal rsync sözdizimi nasıl başlar:

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

/etc/rsyncd.confDosyayı yapılandırmaktan çok bahsetmiştim , ama belki de bu daemon için rsync komutundan daha fazla.

Yukarıdaki varsayılan sözdizimdeki gibi komut satırından çağrıldığında rsync için bazı varsayılan dışlamalar olması mümkün müdür?

Yanıtlar:


10

Dışlananlarınızı bir dosyaya ekleyin, ardından --exclude-from = / path / to / exclude_file komutunu kullanın

Örneğin

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

# rsync --exclude-from=rsync.excludes

1
sözdizimi gibi görünüyor ama --exclude-fromdeğil --exclude-fileama aksi takdirde bu bilet gibi görünüyor. Teşekkürler!
cwd

5

Hayır, rsyncçağrıldıktan sonra okuyacağı varsayılan bir yapılandırma dosyası yok. Yapabileceğiniz en iyi şey @ frogstarr78'in söylediği ve dışarıda bırakılacak desenleri, dosya ve dizin adlarını içeren bir metin dosyası oluşturmak ve daha sonra rsynconunla işaret etmektir --exclude-from=filename.


2
rsync does not have a default configuration file- bu hayal kırıklığı yaratıyor
cwd

3

Rsync varsayılan seçenekleri belirlemenize izin vermese de, bir sarmalayıcı komut dosyası oluşturabilir ve bunu $ PATH'nızda rsync ikili dosyasından daha yükseğe koyabilirsiniz.

Bu benim yaşayan rsync sarıcı ~/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 "$@"

Bunun için bakacağız ~/.rsyncignore, ./.gitignore, ./.rsyncignoredosya ve bunlardan herhangi biri varsa, varsayılan olarak kullanmaya --exclude-fromargümanlar.

RSYNC ve IGNORE_FILES öğelerini, uygulamanıza ve tercihlerinize göre değiştirin.


0

--exclude "/ *" varsayılan olarak her şeyi hariç tutar. İşte bir örnek:

rsync -av --include "bin /" --exclude "/ *" / source_dir / / dest_dir /
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.