rsync त्रुटि: सिमलिंक में कोई सन्दर्भ नहीं है


6

मैं Windows सर्वर को बैकअप करने के लिए rsnapshot (जो rsync का उपयोग करता है) को कॉन्फ़िगर करने का प्रयास कर रहा हूं, लेकिन मुझे समस्या हो रही है कि rsync सर्वर के बैकअप के लिए सिम्लिंक का पालन करने में असमर्थ है।

सेट अप:

  • Cygwin के साथ विंडोज सर्वर 2008 R2 स्थापित किया गया है जो कि बैकअप के लिए फाइल रखता है
  • आर्चलिनक्स सर्वर उसी नेटवर्क पर है जिसे विंडोज सर्वर से फाइलों का बैकअप लेना चाहिए
  • Windows सर्वर में sshd स्थापित और कार्यशील है
  • विंडोज सर्वर में एक रनिंग rsync डेमॉन नहीं है (जहाँ तक मैं बता सकता हूं), लेकिन मैं लिनक्स सर्वर से लिनक्स सर्वर से कनेक्ट करने और फ़ाइलों की प्रतिलिपि बनाने के लिए ss पर rsync का उपयोग कर सकता हूं।
  • क्योंकि कोई एप्लिकेशन लगातार खुली रहने के लिए कुछ फ़ाइलों को रखता है, Windows सर्वर को ड्राइव की वॉल्यूम छाया प्रतियां बनाने के लिए कॉन्फ़िगर किया जाता है जिसमें डेटा बैकअप होता है
  • मैं नवीनतम स्क्रिप्ट कॉपी वॉल्यूम के लिए लिंक बनाने के लिए निम्न स्क्रिप्ट का उपयोग करता हूं ताकि इसे rsync द्वारा एक्सेस किया जा सके:

    #!/bin/sh
    # Mount the latest shadow copy for the specified volume
    
    VOLUME="D:"
    LINK_NAME="E:\\latest-data-shadow-copy"
    
    
    SHADOW_VOLUME=`vssadmin list shadows /for=$VOLUME | grep "Shadow Copy Volume:" | tail -1 | tr -s ' ' | cut -d ' ' -f5`
    SHADOW_VOLUME+="\\"
    
    rm $LINK_NAME
    cmd.exe /c mklink /d "$LINK_NAME" "$SHADOW_VOLUME"
    

समस्या

जब मैं सिम्प्लाइड शैडो कॉपी वॉल्यूम पर डेटा का बैकअप लेने के लिए rsnapshot को चलाने की कोशिश करता हूं, तो यह निम्न त्रुटि देता है:

    symlink has no referent: "/cygdrive/e/latest-data-shadow-copy"

यह rsync कमांड है जो rsnapshot कॉल करता है:

    /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r --rsh=/usr/bin/ssh 'user@windowsip:/cygdrive/e/latest-data-shadow-copy/data-folder/' /media/backup-drive-1/.sync/

हालांकि अगर मैं उपयोग करने की कोशिश करता हूं scp सममित छाया प्रति की मात्रा से फ़ाइलों को कॉपी करने के लिए यह ठीक काम करता है:

    scp user@windowsip:/cygdrive/e/latest-data-shadow-copy/data-folder/test-file.txt test-file.txt

जहाँ तक मुझे पता चल सकता है, यह सुझाव देता है कि rsync त्रुटि का कारण यह है कि इसे विंडोज़ सर्वर पर चेरोट में चलाया जा रहा है ताकि इसे सिम्पीनल शेडो कॉपी वॉल्यूम तक पहुँचने से रोका जा सके।

मैंने बनाने की कोशिश की /etc/rsync.conf और निम्नलिखित जोड़ना:

    use chroot = no

लेकिन इसका त्रुटि पर कोई प्रभाव नहीं है। मुझे लगता है कि यह है क्योंकि यह rsync डेमॉन के लिए एक कॉन्फ़िगर फ़ाइल है, जो मैं नहीं चला रहा हूं

प्रशन

  • क्या रोक रहा है rsync जबकि सममित छाया प्रति तक पहुँचने से scp मुद्दे के बिना फ़ाइलों का उपयोग कर सकते हैं?
  • अगर मसला है use chroot यदि मैं rsync डेमॉन नहीं चला रहा हूँ, तो मैं इसे कैसे बदलूँ?

अग्रिम में आपकी प्रतिक्रियाओं के लिए धन्यवाद!


क्या यह है कि scp सिस्टम कॉल को "/ cygdrive / e / latest-data-shadow-copy" हल करने के लिए विश्वास करता है, और rsync इसे स्वयं हल करने का प्रयास करता है? यदि आप उस लिंक का लक्ष्य rsync को देते हैं, तो क्या यह काम करता है?
ShadSterling

जवाबों:


0

मुझे भी ऐसी ही समस्या थी symlink has no referent:

मूल कारण था: लिंक गैर-मौजूद जगह की ओर इशारा कर रहा था। लिंक बनाने के बाद संगठन के किसी व्यक्ति ने फ़ाइल सिस्टम संरचना को बदल दिया और लिंक अपडेट नहीं किया।

समाधान निम्नलिखित में से एक था:

  1. मौजूदा स्थान पर इंगित लिंक को ठीक करें।
  2. आवश्यक के रूप में लिंक निकालें (कोई नहीं है लेकिन rsync उनका उपयोग करें)।
  3. विकल्प के साथ अपने लिंक तक पहुँचने के लिए rsync का प्रयास छोड़ दें --exclude '/cygdrive/e/latest-data-shadow-copy'। यह "रोकथाम" विधि पूछा जाता है, हालांकि, शायद सबसे अच्छा एक नहीं है, इसलिए अंतिम विकल्प प्रस्तावित है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.