rsync त्रुटि: "/ foo / bar" पर बार सेट करने में विफल: ऑपरेशन की अनुमति नहीं है


194

मुझे rsync से एक भ्रामक त्रुटि मिल रही है और शुरुआती चीजें जो मुझे वेब खोजों से मिल रही हैं (साथ ही सभी सामान्य chmod'ing) इसे हल नहीं कर रहे हैं:

rsync: failed to set times on "/foo/bar": Operation not permitted (1)
rsync error: some files could not be transferred (code 23) 
  at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]

ऐसा लगता है कि त्रुटि के बावजूद काम कर रहा है, लेकिन इससे छुटकारा पाना अच्छा होगा।


नहीं, बस एक सामान्य निर्देशिका जहाँ तक मैं बता सकता हूँ।
२१

बस इसी तरह की समस्या का सामना करना पड़ा, हालांकि मेरा त्रुटि कोड 22 था: rsync: समय पर सेट करने में विफल रहा ... अमान्य तर्क (22)। कुछ जाँचों के बाद यह पता चला कि मेरी फाइलें 1956 में अंतिम बार संशोधित हुई थीं! समाधान: सभी फ़ाइलों को स्पर्श करें, समस्या हल हो गई है। :) "खोजें। -प्रिंट0 | xargs -0 स्पर्श"
KIAaze

मुझे लगता है कि अगर आपने भी एक ही गंतव्य के लिए एक क्रॉन नौकरी की स्थापना की है, तो यह त्रुटि wil दिखाती है। क्रोन जॉब (क्रॉस्टैब) के लिए समय बदलने से इसके चारों ओर जाने में मदद मिलेगी। मेरे मामले में, मुझे केवल यह त्रुटि मिलती है अगर मैं एक मैनुअल आरएनएनसी करता हूं यदि मैंने क्रोन जॉब भी स्थापित किया है।
नेल्सनगॉन

जवाबों:


286

यदि /foo/barNFS (या संभवतः कुछ FUSE फाइल सिस्टम) पर है, तो यह समस्या हो सकती है।

किसी भी तरह, अपनी कमांड लाइन में जोड़ने -O/ --omit-dir-timesइसे निर्देशिकाओं में संशोधन समय निर्धारित करने की कोशिश करने से बचना होगा।


8
मजेदार बात यह है कि मैं ext3 को ext3 से सिंक्रनाइज़ कर रहा हूं दोनों OSes लिनक्स हैं। मुझे पहले कभी इस स्विच का उपयोग नहीं करना पड़ा। -अच्छी चाल, लेकिन काश मैं इसे उपयोग करने के लिए नहीं था।
d -_- b

3
धन्यवाद! यह कुछ VPS होस्ट्स (जैसे xlshosting.nl) को आंतरिक रूप से उपयोग करता है, जो rsync के साथ समस्याएँ दे सकता है।
फ्रेडरिक

2
मैं लिनक्स ext4 से लिनक्स ext4 के लिए एक ही समस्या है rsyncing: एक "समय निर्धारित नहीं कर सकता है: ऑपरेशन की अनुमति नहीं" सहानुभूति के लिए , निर्देशिका नहीं। -Oमदद नहीं करता है, जाहिर है। यह तब नहीं हुआ जब मेरा बैकअप विभाजन ext4 के बजाय ext3 था।
मारियस गेदमिनस

10
मैं rsync -avc का उपयोग कर रहा था, और जोड़ने -O मदद नहीं कर रहा था। मैंने तब पढ़ा था कि -a एक समान-सेरेक्टगो है जिसमें शामिल है -t जो मुझे लगता है कि ओवरराइडिंग -ओ है। तो मेरे लिए फिक्स का उपयोग करना था-surpgoDvc
dlink

3
@ लिंक आप --no-tनिहित विकल्प को हटाने के लिए जोड़ सकते हैं ।
नोम नेल्के

86

यह समस्या संभवत: दूरस्थ डार्विन (OS X) प्रणाली पर लेखन प्रक्रिया के स्वामित्व में नहीं होने के कारण / foo / bar के कारण है। समस्या का समाधान दूरस्थ साइट पर पर्याप्त स्वामी सेट करना है।

चूँकि यह उत्तर मतदान का है, और इसलिए यह किसी के लिए उम्मीद से उपयोगी है, मैं इसे स्पष्ट करने के लिए इसका विस्तार कर रहा हूं।

ऐसा होने का कारण यह है कि rsync संभवतः फ़ाइलों की प्रतिलिपि बनाते समय एक मनमाना संशोधन समय (माइम) सेट करने का प्रयास कर रहा है।

इस डार्विन के सिस्टम utime()फ़ंक्शन को करने के लिए यह आवश्यक है कि लेखन प्रक्रिया प्रभावी यूआईडी या तो फ़ाइल यूआईडी या सुपर उपयोगकर्ता के एक के समान हो, देखें opengroup utime का पेज । संदर्भ के रूप में rsync मेलिंग सूची पर इस चर्चा की जाँच करें


10
लिनक्स पर समान (मेरे मामले में डेबियन निचोड़) ... यदि मैं लक्ष्य निर्देशिका का मालिक नहीं हूं, तो rsync "संदेश सेट करने में विफल" त्रुटि संदेश देता है। (निर्देशिका पर
लिखित

1
मैं उसी मुद्दे में फंस गया। जब तक uFS = उपयोगकर्ता के साथ NTFS माउंट न करें।
गवेंको

3
यह त्रुटि मेरे लिए तब दूर हो गई जब मैंने उस निर्देशिका के मालिक को बदल दिया जिसे मैं (दूरस्थ सर्वर पर) rsync कमांड का उपयोग करके उसी उपयोगकर्ता को प्रभावित करने की कोशिश कर रहा था जैसे कि मेरी स्थानीय बैश स्क्रिप्ट पर rsync के माध्यम से लॉग इन करने की कोशिश कर रहा था। दूसरे शब्दों में: मैं /remote/path/to/foo/barइस कमांड के साथ रिमोट सर्वर पर लिखने की कोशिश कर रहा था: और मुझे rsync -avzP --exclude '.DS_Store' /local/path/to/foo/bar/ user1@1.2.3.4:/remote/path/to/foo/bar वही त्रुटि संदेश मिले जो तब चले गए जब मैंने इस तरह user1का मालिक बनाया /remoe/path/to/foo/bar:$ chown -R user1 /remote/path/to/foo/bar
racl101

1
यदि आप किसी समूह में अन्य उपयोगकर्ताओं के साथ अपनी फ़ाइलें साझा करते हैं, उदाहरण के लिए आप चिपचिपे बिट का उपयोग करते हैं तो मालिक बदलना वास्तव में समाधान नहीं है। हम इस चेतावनी को रोकने के लिए -t और add -O का उपयोग नहीं करते हैं।
आर। वैन ट्विस्क

1
क्या आप इस जवाब का विस्तार कर सकते हैं कि क्या कोई उपयोगकर्ता उस समूह का हिस्सा है जो फ़ाइल / डीआईआर का मालिक है अगर उसे काम करना चाहिए या नहीं?
एलिजा लिन

4

जैसा कि @ racl101 ने एक उत्तर पर टिप्पणी की है, यह समस्या फ़ोल्डर के मालिक से संबंधित हो सकती है । Rsync कमांड को उसी उपयोगकर्ता द्वारा किया जाना चाहिए जैसे कि फ़ोल्डर का स्वामी। यदि यह समान नहीं है, तो आप इसे बदल सकते हैं।

chown -R userCorrect /remote/path/to/foo/bar

2

मेरे मामले में समस्या यह थी कि "रिसीवर माउंटपॉइंट" गलत तरीके से लगाया गया था। यह रीड-ओनली मोड में था (किसी कारण से)। ऐसा लग रहा था कि rsync फाइलों को कॉपी कर रहा था, लेकिन ऐसा नहीं था। मैंने अपनी fstab फ़ाइल को चेक किया और माउंट विकल्प को डिफ़ॉल्ट रूप से बदल दिया, फ़ाइल सिस्टम को फिर से माउंट किया और rsync को फिर से निष्पादित किया। फिर सब ठीक।


2

मुझे भी यही समस्या थी। मेरे लिए समाधान दूरस्थ फ़ाइल को हटाने और rsyncफिर से बनाने के लिए है।


0

मैंने उस समस्या को देखा है जब मैं एक फाइलसिस्टम को लिख रहा हूं जो (ठीक से) बार हैंडल नहीं करता है - मुझे लगता है कि एसएमबी शेयर या एफएटी या कुछ और।

आपका लक्ष्य फ़ाइल सिस्टम क्या है?


मैं एक मैक पर हूँ, rsync'ing to linux (एक स्लाइसहोस्ट मशीन)।
dreeves

आह, अजीब ... चूंकि आप मैक पर rsync का उपयोग कर रहे हैं, हालांकि, मुझे आपको चेतावनी देनी चाहिए: यह ठीक से सभी ओएस एक्स फ़ाइल विशेषताओं को संरक्षित नहीं करता है, इसलिए खराब चीजें हो सकती हैं। देखें, उदा: blog.plasticsfuture.org/2006/04/23/mac-backup-software-harmful
डेविड

हालाँकि, आप MacPorts के सबसे हाल के संस्करण का उपयोग कर सकते हैं (sudo port install rsync ) और यह कम टूट जाएगा। इसे जांचने के लिए rsync --version:: rsync संस्करण 3.0.5 प्रोटोकॉल संस्करण 30 ... परिशिष्ट, ACLs, xattrs, iconv, symtimes, फ़ाइल-फ़्लैग ... (ACLs और xattrs महत्वपूर्ण हैं)
डेविड वोलेवर

1
Macintosh पर rsync वास्तव में सभी फ़ाइल विशेषताओं को सेट करता है और उसने कुछ समय के लिए ऐसा किया है, कृपया ध्यान दें कि URL "2006 में खराब चीजें हो सकती है" दिनांकित है!
टॉगन

2
उत्तर में वास्तव में प्रश्न शामिल नहीं होने चाहिए। यह एक टिप्पणी के रूप में अधिक उपयुक्त होगा।
ब्रायन

0

यह हो सकता है कि आपके पास कुछ फ़ाइलों के विशेषाधिकार नहीं हैं। एक व्यवस्थापक खाते से, "sudo rsync -av" का प्रयास करें, वैकल्पिक रूप से, रूट खाते को सक्षम करें और रूट के रूप में साइन इन करें। आपको अपने सिस्टम को पूरी तरह से नली करने की अनुमति देनी चाहिए और अपने rsync को बल देना चाहिए! ;-) मुझे यकीन नहीं है कि अगर उपर्युक्त - विशेषताएँ-विशेषताएँ मदद करेंगी, लेकिन मैंने इसे भी फेंक दिया, सिर्फ अच्छे उपाय के लिए।


0

यह मेरे लिए एक प्रकार का विभाजन था xfs (rw,relatime,seclabel,attr2,inode64,noquota) , जहां निर्देशिका जहां एक समूह में किसी अन्य उपयोगकर्ता के स्वामित्व में थी, हम दोनों के सदस्य थे। समूह सदस्यता लॉगिन से पहले ही स्थापित हो गई थी, और पूरी निर्देशिका संरचना समूह-लेखन योग्य थी। मैंने मैन्युअल रूप से चलाया था sudo chown -R otheruser.group directoryऔरsudo chmod -R g+rw directory इसकी पुष्टि करने के लिए।

मुझे अभी भी पता नहीं है कि यह मूल रूप से काम क्यों नहीं करता है, लेकिन sudo chown -R myuser.group directoryइसे निश्चित रूप से स्वामित्व लेना है। शायद SELinux-related?


मैन पेज एप का यूआईडी कहता है। काम करने के लिए फाइल के UID से मिलान utime()करना होगा। आप रूट के रूप में भी चला सकते हैं और कर सकते हैं। लेकिन अगर फ़ाइल का यूआईडी अलग है, तो वे आपको "अब" के अलावा किसी और चीज़ का समय बदलने नहीं देते हैं।
एलेक्सिस विलके

क्या आप ऐसे मैन पेज से लिंक कर सकते हैं? मेरा कोई भी उल्लेख नहीं है utime()
सैम ब्राइटमैन

1
linux.die.net/man/2/utime प्रासंगिक अनुच्छेद: "टाइमस्टैम्प को बदलने की अनुमति तब दी जाती है जब: या तो प्रक्रिया में उपयुक्त विशेषाधिकार होते हैं, या प्रभावी उपयोगकर्ता आईडी फ़ाइल के उपयोगकर्ता आईडी के बराबर होती है, या समय NULL होता है और प्रक्रिया होती है फ़ाइल के लिए अनुमति लिखें। "
एलेक्सिस विल्के

0

यदि आप उन फ़ाइलों के लिए rsync प्रक्रिया चलाते हैं, जो हाल ही में स्रोत या गंतव्य में संशोधित नहीं हैं, तो यह त्रुटि पॉप-अप हो सकती है ... क्योंकि यह हाल ही में संशोधित फ़ाइलों के लिए समय निर्धारित नहीं कर सकती है।

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