rsync খালি নয় এমন ডিরেক্টরি মুছতে পারে না


10

যখন আমার দূরবর্তী ব্যাকআপ সিঙ্ক আমি ভুল পান rsync cannot delete non-empty directory

আমি কারণটি জানি: আমি কিছু ফাইল বাদ দিয়েছি এবং যখন rsync স্থানীয়ভাবে উপস্থিত না থাকায় কোনও দূরবর্তী ডিরেক্টরি মুছে ফেলার চেষ্টা করে, এটি খালি না বলে এটি করতে পারে না। বাদ ব্যতীত ডিরেক্টরিটি খালি হয়ে যাবে।

আমি এও জানি যে আমি --delete-બાદযুক্ত ব্যবহার করে সমস্যা থেকে মুক্তি পেতে পারি, তবে এটি আমার চাই না।

আমি নির্দিষ্ট কিছু ফাইল আপলোড করা এড়িয়ে যেতে চাই (কারণ এটি আমার আপলোডের গতির জন্য খুব বড়) তবে আমি স্থানীয়ভাবে উপস্থিত থাকলে কিছুক্ষণ আগে আমার আপলোড করা ফাইলগুলি রাখতে চাই । স্থানীয়ভাবে এগুলি উপস্থিত না থাকলে সেগুলি মুছে ফেলা উচিত। - মুছে ফেলা-বাদ দেওয়া দূরবর্তী পার্শ্বে সেগুলি মুছে ফেলবে।

এর অর্থ হ'ল কোনও ডিরেক্টরি যদি স্থানীয়ভাবে উপস্থিত না থাকে তবে এটিতে বাদ দেওয়া ফাইল থাকা সত্ত্বেও এটি মুছে ফেলা উচিত।

এটি সম্পাদন করার জন্য কি আরএসসিএন সেটআপ করা সম্ভব?

উত্তর:


5

pসংশোধক ব্যবহার করুন :

একটি পি ইঙ্গিত দেয় যে কোনও নিয়ম বিনষ্টযোগ্য, যার অর্থ এটি মুছে ফেলা হচ্ছে এমন ডিরেক্টরিগুলিতে উপেক্ষা করা হয়। উদাহরণস্বরূপ,-সি বিকল্পের ডিফল্ট নিয়মগুলি "সিভিএস" এবং "* .o" এর মতো জিনিসকে বঞ্চিত হিসাবে চিহ্নিত করা হয়েছে, এবং উত্সটিতে মুছে ফেলা কোনও ডিরেক্টরিকে গন্তব্যস্থলে মুছে ফেলা থেকে বাধা দেবে না।

উদাহরণস্বরূপ, আমি -Fবিকল্পটি ব্যবহার করি , যা "আরএসসিএনকে প্রতি ডিরেক্টরি অনুসারে .rsync- ফিল্টার ফাইলগুলি হায়ারার্কির মাধ্যমে ছিটিয়ে দেওয়া হয়েছে এবং স্থানান্তরগুলিতে ফাইলগুলি ফিল্টার করার জন্য তাদের নিয়মগুলি ব্যবহার করে বলে tells"

আমার .rsync-filterএইগুলিতে এই "ড্রপিংস" ফিল্টার করতে এর মতো লাইন রয়েছে যা ম্যাকগুলি তাদের পিছনে ফেলেছে:

-p .DS_Store
-p ._*

যদি ন্যায়বিচারের excludeপরিবর্তে ব্যবহার করা হয় -তবে একটি কমা যুক্ত করুন। উদাহরণ স্বরূপ :

exclude,p .DS_Store
exclude,p Thumbs.db

0

আপনি যে প্যাটার্নটি ব্যবহার করেছেন সেগুলিতে আপনি অন্তর্ভুক্ত / বাদ দেওয়া প্যাটার্নের সংশোধক ব্যবহার করতে পারেন। এটি আরএসসিএনকে বলে যে কেবল প্রেরণের জন্য নিয়ম বাদ দেয় rule

-n: কেবলমাত্র ডেস্কে কী মুছে যাবে তা পরীক্ষা করে দেখুন, প্যাটার্নটি মুছবেন না: * .শ ডেস্ক: / হোম / কেজি / টিএমপি

লক্ষ্য: ডেস্কে .sh এর ফাইল প্রান্তটি মুছতে চান, তবে আপনি যদি এটি করেন তবে আপনি ডেস্কে মুছতে পারবেন না: rsync -rvz --exclude * .sh --delete -n কনকজি কেজি@192.168.31.202: / হোম / কেজি / tmp -র পরিবর্তে

এতে পরিবর্তিত হওয়া উচিত: দয়া করে পরীক্ষার পরীক্ষা করার সময় যোগ করুন -n: rsync -rvz --exclude-from del.txt -n --delet কনকজি কেজি@192.168.31.202: / হোম / কেজি / টিএমপি রিয়েল ডিলিট: আরএসইএনসি -আরভিজেড - del.txt- থেকে বাদ দিন - মোছা কনকজি কেজি@192.168.31.202: / হোম / কেজি / টিএমপি বিড়াল del.txt -s * .sh

বা: আরএসআইএনসি -আরভিজেড - এক্সক্লুড-এস * .এসএস --ডিলিট কনকজি কেজি@192.168.31.202: / হোম / কেজি / টিএমপি


-2

কেবল '- ম্যাক্স-সাইজ = এক্সএক্স' এবং আরএসএনসি-এর '--ডিলেট' বিকল্পগুলি ব্যবহার করুন। এটি স্বয়ংক্রিয়ভাবে সবকিছু করবে এবং আপনার সমস্ত প্রয়োজনীয়তা পূরণ করবে।


এটি বেশিরভাগ ক্ষেত্রেই কাজ হবে। আমি মুভি, এভি এবং ক্র 2 ফাইল সম্পূর্ণভাবে এড়িয়ে যেতে চাই কারণ তারা সাধারণত খুব বড়। তবে আমি ইতিমধ্যে কিছুক্ষণ আগে দ্রুত লাইনে আপলোড করেছি তাদের রাখা উচিত। এখন সমস্যাটি হ'ল বৃহত্তম জেপিজি ফাইলগুলি ক্ষুদ্রতম সিআর 2 ফাইলের চেয়ে বড়, সুতরাং এই সমাধানটি আদর্শ নয়। আমি বরং ফাইলের নামগুলিতে ফিল্টার করতে বাদ দেওয়া বৈশিষ্ট্যটি ব্যবহার করব।
মারারার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.