मैं कैसे rsync के साथ डिफ़ॉल्ट रूप से फ़ाइलों को बाहर कर सकता हूं?


12

मैं कैसे rsync के साथ डिफ़ॉल्ट रूप से फ़ाइलों को बाहर कर सकता हूं? यहां बताया गया है कि मेरा सामान्य rsync सिंटैक्स कैसे शुरू होता है:

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

मैंने /etc/rsyncd.confफ़ाइल को कॉन्फ़िगर करने का बहुत उल्लेख किया है, लेकिन शायद यह rsync कमांड की तुलना में डेमॉन के लिए अधिक है।

जब ऊपर मेरे डिफ़ॉल्ट सिंटैक्स में कमांड लाइन से कॉल किया जाता है तो क्या rsync के लिए कुछ डिफ़ॉल्ट को बाहर करना संभव है?

जवाबों:


10

किसी फ़ाइल में अपने बहिष्करण जोड़ें, फिर --exclude-from = / path / से / बहिष्कृत_ का उपयोग करें

जैसे

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

# rsync --exclude-from=rsync.excludes

1
ऐसा लगता है कि सिंटैक्स है --exclude-fromऔर नहीं, --exclude-fileलेकिन अन्यथा यह टिकट लगता है। धन्यवाद!
cwd

5

नहीं, rsyncएक डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल नहीं है जो यह आह्वान पर पढ़ेगी। आप जो कर सकते हैं वह सबसे अच्छा है @ frogstarr78 कहते हैं और पैटर्न के साथ एक पाठ फ़ाइल बनाएं, फ़ाइल और निर्देशिका नामों को बाहर करने के लिए, और फिर rsyncइसके साथ इंगित करें --exclude-from=filename


2
rsync does not have a default configuration file- यह निराशाजनक है
cwd

3

जबकि rsync आपको डिफ़ॉल्ट विकल्प सेट करने की अनुमति नहीं देता है, आप एक आवरण स्क्रिप्ट बना सकते हैं और इसे rsync बाइनरी की तुलना में अपने $ PATH में उच्चतर रख सकते हैं।

यह मेरा rsync रैपर है जो अंदर रहता है ~/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 "$@"

यह देखने के लिए की जाती है ~/.rsyncignore, ./.gitignore, ./.rsyncignoreफ़ाइलें और, अगर उनमें से किसी मौजूद हैं, उन्हें डिफ़ॉल्ट रूप में उपयोग --exclude-fromतर्क।

अपने एनवायरनमेंट और वरीयताओं के अनुरूप बस RSYNC और IGNORE_FILES बदलें।


0

--exclude "/ *" डिफ़ॉल्ट रूप से सब कुछ बाहर कर देगा। यहाँ एक उदाहरण है:

rsync -av --include "bin /" --exclude "/ *" / source_dir / / dest_ir /
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.