rsync '-খালি ডিরেক্টরিটি' মুছে ফেলতে পারে না - ত্রুটি এমনকি - বল বিকল্পের সাথেও


28

এই আদেশটি চালনার সময়:

$ sudo rsync -r --delete --force --checksum --exclude=uploads /data/prep/* /data/app/

আমি নিম্নলিখিত আউটপুট পাচ্ছি:

cannot delete non-empty directory: html/js/ckeditor/_source/plugins/uicolor/yui
cannot delete non-empty directory: html/js/ckeditor/_source/plugins/uicolor/yui
cannot delete non-empty directory: html/js/ckeditor/_source/plugins/uicolor
cannot delete non-empty directory: html/js/ckeditor/_source/plugins/uicolor
cannot delete non-empty directory: html/js/ckeditor/_source/plugins
cannot delete non-empty directory: html/js/ckeditor/_source/plugins
cannot delete non-empty directory: html/js/ckeditor/_source
cannot delete non-empty directory: html/js/ckeditor/_samples
cannot delete non-empty directory: html/js/ckeditor/plugins/uicolor/yui
cannot delete non-empty directory: html/js/ckeditor/plugins/uicolor/yui
cannot delete non-empty directory: html/js/ckeditor/plugins/uicolor

পড়া থেকে man rsyncএটা আমার ধারণা ছিল যে--force বিকল্পটি আরএসসিএনকে এই খালি খালি ডিরেক্টরিগুলি মুছতে বলবে, যা পছন্দসই ফলাফল।

সূত্র:

--force                 force deletion of dirs even if not empty

খালি নয় এমন ডিরেক্টরি মুছতে আমি কীভাবে আদেশটি পরিবর্তন করতে পারি?

যদি প্রাসঙ্গিক হয় তবে আমি জেন্টু বেস সিস্টেম রিলিজ ২.০.৩ এ আরএসসিএন সংস্করণ ৩.০.৮ ব্যবহার করছি।

আপডেট করুন: যোগ করা হয়েছে sudoকমান্ড এটা পরিষ্কার যে এই একটি ফাইল অনুমতি সমস্যা হয় না করতে।


গন্তব্য কী ফাইল সিস্টেম? ফাইল সিস্টেমটি কি মেরামতের দরকার?
মার্কাস ডাউনিং

ফাইল সিস্টেমটি হচ্ছে ext3। ফাইল সিস্টেমটি প্রয়োজন বা মেরামতের প্রয়োজন হতে পারে। আমি fsckপরবর্তী সুযোগে এবং ফলাফলের সাথে আপডেট করব ।
টমমারশাল

আমি কেবল fsckসিস্টেমটি করেছি এবং এই সমস্যাটি এখনও উপস্থিত রয়েছে।
tommarshall

উত্তর:


39

আপনি যোগ করার চেষ্টা করেছেন? --delete-excluded ?

যদি আপনি "দূরবর্তী" সাইডের আপনার বাদ দেওয়া ফোল্ডারগুলির কোনও ডিরেক্টরি মুছে ফেলেন, তবে rsync --deleteআপনার "স্থানীয়" সাইটে থাকা বাদ দেওয়া ফোল্ডারটি মুছবে না।


একটি ফোল্ডার নামক ছিল uploadsমধ্যে html/js/ckeditor/_source/plugins/uicolor/yui, html/js/ckeditor/_samplesএবং html/js/ckeditor/plugins/uicolor/yuiডিরেক্টরি। আপনার সাহায্যের জন্য ধন্যবাদ.
tommarshall

যদি আপনি ব্যবহার করছেন --delete-excludedতবে আপনি এখনও কিছু ফাইল / ডিরেক্টরি মুছে ফেলা থেকে বাদ দিতে চান তবে আপনি এই ফাইলগুলি / ডিরেক্টরিটি স্থাপন করতে পারেন --filter 'protect some_dir/', উদাহরণস্বরূপ:rsync -ac --delete --delete-excluded --exclude '*.html' --filter 'protect .git/' . /target/destination/
alexandre1985

6

এই সমস্যার সম্ভাব্য উত্স এখানে:

(1) এই ত্রুটিটি -b (- ব্যাকআপ) বিকল্পের ফলাফল হতে পারে । এই বিকল্পটি তার ফাইলের নামের উপরে টিলড ( ~ ) যুক্ত করে প্রতিটি মুছে ফেলা ফাইলের একটি ব্যাকআপ তৈরি করবে । (এটি আমাকে বিভ্রান্ত করেছে, কারণ ফাইল-নামটি স্পষ্টতই একটি ব্যাকআপ, তবে ডিরেক্টরি টি নেই, কারণ আপনি টিল্ডটি দেখতে পাচ্ছেন না))

এটি একইরকম কিনা তা পরীক্ষা করতে গভীরতম স্তরে আপনার টার্গেট ডিরেক্টরিটি পড়ুন এবং কোন টিলড (~) সমাপ্তি ফাইল আছে কিনা তা পরীক্ষা করে দেখুন। মনে রাখবেন যে এই টিলড-সংযুক্ত-ফাইল-নামগুলি পরে কিছু সাধারণ ফাইল ব্রাউজিং সিস্টেমে অদৃশ্য হয়, যাতে আপনি সেগুলি দেখতে নাও পারেন।

এই ক্ষেত্রে সমাধানের জন্য, --backup-dir = DIR বিকল্পটি পছন্দ করুন - উদাহরণস্বরূপ --backup-dir = .rsync_bak।

(2) - - বিকল্প বিকল্প একই ফলাফল থাকতে পারে। যা সম্ভবত আপনার ক্ষেত্রে ঘটছে। প্যাটার্ন সিস্টেমটি শক্তিশালী তবে বিভ্রান্তিকর হতে পারে। উদাহরণস্বরূপ আপনি যদি লিখুন --excolve = '* write', এটি সমস্ত টিলড শেষ হওয়া ফাইলগুলি এড়িয়ে যাবে, ফলস্বরূপ উপরের ক্ষেত্রে (1) এর মতো ফলাফল।

আরএসএনসি ম্যান পৃষ্ঠা থেকে:

যদি প্যাটার্নটি একটি / দিয়ে শুরু হয় তবে এটি ফাইলের শ্রেণিবিন্যাসের একটি নির্দিষ্ট স্পটে অ্যাঙ্কর করা হয়, অন্যথায় এটি পথের নামের শেষের সাথে মিলে যায়

যদি আপনি --exclude = আপলোড লিখুন, এই "updloads" নামে সমস্ত ফাইল, এ অগ্রাহ্য করবে কোন এটি আপনার ফাইল গাছের স্তরে ।

আপনার অক্ষম-মোছা ডিরেক্টরিগুলি ডিরেক্টরিতে "আপলোড" নামে একটি ফাইল আছে কিনা তা পরীক্ষা করে দেখুন।

সমাধানটি "--excolve = আপলোডগুলি" "--excolve = আপলোড /" এ পরিবর্তন করা হবে


0

আমার সেটআপে (উত্সটি ওয়েস্টার্ন ডিজিটাল টাইপ ফিউজব্লেক লক্ষ্য করে উবুন্টু ফর্ম্যাট টাইপ এক্সট 4) এটি এর সাথে কাজ করে:

rsync -a -v --progress --modify-window=1 -c -b -i -s -m --del -vv --ignore-errors --chmod=ugo=rwx --delete --delete-excluded  --exclude='*~'  --exclude='.*' --backup-dir=.rsync_bak /home/test /media/user/usbHDD

2
এর কোন অংশটি আসলে সমস্যার সমাধান করে?
মাইকেল হ্যাম্পটন

0

পরিবর্তে ফিল্টার ফাইলগুলিতে নিয়ম ব্যবহার করুন --exclude। এগুলি আপনাকে "গ্রহণযোগ্য" হিসাবে বাদ দেওয়া হিসাবে চিহ্নিত করার অনুমতি দেয়, যা আপনাকে খালি নয় এমন ডিরেক্টরি ডিরেক্টরি বাদ দিতে দেয় যা বাদ দেওয়া ফাইল রয়েছে।

বিস্তারিত জানার জন্য এই উত্তরটি দেখুন ।


-1

ডিরেক্টরিটি মুছে ফেলার জন্য আপনাকে কোনও ডিরেক্টরি খালি রাখতে হবে, সাধারণত ফাইল সিস্টেমের এটির প্রয়োজন হয়।

সুতরাং সাধারণত rsyncবাrm পুনরাবৃত্তভাবে সমস্ত সামগ্রী প্রথমে মুছে ফেলা হবে এবং কেবল তখনই খালি-খালি ডিরেক্টরি মুছুন।

যদি বর্তমান ব্যবহারকারী সমস্ত ফাইলের মালিক না হন তবে ফাইল সিস্টেমের অনুমতি আপনাকে সেই ফাইলগুলি মুছতে দেয় না। যেহেতু সেগুলি সরানো হবে না, ডিরেক্টরিটি খালি হয় না এবং মোছা ব্যর্থ হবে।

আমার প্রথম অনুমানটি হ'ল directory ডিরেক্টরিতে থাকা কিছু ফাইল অন্য ব্যবহারকারী যেমন অ্যাপাচি বা কেউ ব্যবহারকারীর হাতে নেই।


ধন্যবাদ। ডিরেক্টরিগুলির মধ্যে থাকা ফাইলগুলি প্রকৃতপক্ষে অ্যাপাচি গ্রুপের মধ্যে থাকা কোনও ব্যবহারকারীর মালিকানাধীন, তবে আমি এই ব্যবহারকারীরূপে এই কমান্ডটি চালানোর চেষ্টা করেছি এবং একই ত্রুটি পেয়েছি।
tommarshall

এছাড়াও, যদি এটি কোনও ফাইল অনুমতির সমস্যা হয় তবে আমি সমস্যাটি সমাধানের জন্য 'সুডো' এর মতো একই কমান্ডটি চালানোর আশা করতাম, তবে এটি এমন নয়। তবে, আমি ভুল হয়ে থাকলে আমাকে এটিকে সংশোধন করুন correct
tommarshall

1
কমান্ডটি রুট হিসাবে চালানো বেশিরভাগ অনুমতি সংক্রান্ত সমস্যাগুলি কাটিয়ে উঠতে হবে, হ্যাঁ। (সম্ভবত যে জায়গাটি এখনও ব্যর্থ হবে এমন জায়গায় একটি নাম করার জন্য একটি এনএফএস মাউন্টে রয়েছে, অপর একটি অপরিবর্তনীয় ফাইল) ls -laডিরেক্টরি কেন এখনও খালি নেই তা দেখার জন্য একটি সাধারণ পরীক্ষা করুন check lsattrঅপরিবর্তনীয় ফাইলগুলি প্রদর্শন করবে।
এইচবিউইজন

অতিরিক্ত তথ্যের জন্য ধন্যবাদ, তবে lsattrতালিকাভুক্ত ডিরেক্টরিগুলির মধ্যে একটি থেকে নিম্নলিখিত ফলাফলগুলি আউটপুট হয়: --------------- ./assets(আমি কোনও পতাকা নেই), এবং ফাইলটি কোনও এনএফএস মাউন্টে নেই। কমান্ডটি এখনও সুডোর সাথে ব্যর্থ হবে কেন আপনি ভাবতে পারেন এমন অন্য কোনও কারণ রয়েছে?
টমমারশাল

সেখানে কি কোনও সিমলিংক রয়েছে, বা কেবল আসল ফাইল?
মার্কাস ডাউনিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.