আরএসআইএনসি-তে ফাইলগুলি কীভাবে বাদ দেওয়া যায়?


12

আমি উবুন্টু সার্ভারটি 12.04 ব্যবহার করছি, এখন আমি আরএসসিএনসি ব্যবহার করে কিছু ফাইল ব্যাকআপ করতে চাই, এখানে একটি চেষ্টা করুন:

rsync -aAX $HOME/Documents/* $HOME/Backups/TEST --exclude={$HOME/Documents/another/*,$HOME/Documents/temp/*} 

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

ls $HOME/Backups/TEST/another
test

টেস্ট হ'ল ফোল্ডারে থাকা অন্য একটি ফাইল, এবং এটি অনুলিপি করা হলেও আমি ফাইলটি আরএসইএনসি-তে বাদ দিই, কেন? কীভাবে এই ফাইলগুলি বাদ দেওয়া যায়?

উত্তর:


11

আপনার আরএসসিএনসি কমান্ডের সাথে বেশ কয়েকটি সমস্যা রয়েছে ( ফিল্টার নিয়মের বিশদ ব্যাখ্যার জন্য আরএসএনসি-র জন্য ম্যানপেজও দেখুন )।

  • --excludeযে কোনও নিদর্শনগুলির জন্য আমাদের প্রতিটি কমান্ডের প্রয়োজন ।
  • প্রদত্ত পাথগুলির উত্স পথের সাথে আপেক্ষিক হওয়া প্রয়োজন (কোনও পরম পাথ নেই)।
  • আমাদের উত্স এবং গন্তব্য বলার আগে বিকল্পগুলি দেওয়া দরকার।

আপনার উদাহরণের জন্য নিম্নলিখিত বাক্য গঠন কাজ করবে:

rsync -avAX --exclude=another/ --exclude=temp/ ~/Documents/ ~/Backups/TEST

মনে রাখবেন যে যদি কোনও বহিরাগত প্যাটার্ন /এটির সাথে শেষ হয় তবে এটি একটি ডিরেক্টরিকে নির্দেশ করে। আপনি যদি এটিকে উভয়ই বাদ দেন তবে সেই নামের ফাইল এবং ডিরেক্টরিগুলি বাদ দেওয়া হবে। *সমস্ত ফাইল বা ডিরেক্টরি তাদের নামের সাথে স্ট্রিং সহ বাদ দিতে ওয়াইল্ডকার্ড দিয়ে এটি প্রতিস্থাপন করুন ।


6
এটি সম্পূর্ণ সঠিক নয়। এটি কীভাবে কাজ করে তা সম্পর্কে আমি নিশ্চিত নই, তবে পরীক্ষা-নিরীক্ষা থেকে --exclude=/fooডিরেক্টরিটি fooসরাসরি উত্সে --exclude=fooবাদ দেবে , তবে foo নামে কোনও ডিরেক্টরি বাদ দেবে, এমনকি উপ-ডিরেক্টরিতেও।
স্পারহাক

10

.rsync-filterআপনার উত্স ডিরেক্টরিতে ফাইল যুক্ত করা সহজ এবং -Fবিকল্পটি ব্যবহার করতে পারেন find

ম্যান পৃষ্ঠা থেকে:

-এফ: এই নিয়মের জন্য -F বিকল্পটি একটি শর্টহ্যান্ড [...]

 --filter='dir-merge /.rsync-filter'

এটি আরএসসিএনকে প্রতি-ডিরেক্টরি .rsync-ফিল্টার ফাইলগুলি সন্ধান করতে বলে যা হায়ারার্কির মাধ্যমে ছিটানো হয়েছে এবং স্থানান্তরগুলিতে ফাইলগুলি ফিল্টার করার জন্য তাদের নিয়মগুলি ব্যবহার করে।

উদাহরণস্বরূপ: $ হোম / ডকুমেন্টস / .rsync- ফিল্টারে

# you can add comments in filter files

- /another/
- /temp/

পরিবর্তে -, আপনি পুরো শব্দটি লিখতে পারেন exclude

এখন তুমি পার

rsync -aAX -F $HOME/Documents/ $HOME/Backups/TEST/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.