গ্রহণের দিকটিতে ব্যতিক্রম ছাড়া প্রেরণকারী পক্ষের অস্তিত্ব নেই এমন ফাইলগুলি মুছে ফেলার জন্য আরএসসিএনকে অনুরোধ করুন


29

আমি এই থ্রেড পড়েছি:

তবে যতদূর আমি বলতে পারি (সম্ভবত আমি কিছু মিস করছি), তারা নিম্নলিখিত প্রশ্নটি আবদ্ধ করে না:

আপনি কীভাবে rsyncফাইলগুলি অনুলিপি করতে এবং ব্যতিক্রম ব্যতীত প্রেরণকারী পক্ষের অস্তিত্ব নেই এমন প্রাপ্তিগুলিকে মুছে ফেলতে বলবেন ? (উদাহরণস্বরূপ .hgপ্রেরণের পক্ষের কোনও ভান্ডার নেই, তবে প্রাপ্তির দিকের পার্শ্বীয় সংগ্রহস্থান সরিয়ে ফেলবেন না )।

এক সম্ভাবনা?

নীচে @ রিচার্ড হলোয়ের উত্তর থেকে .ণ নেওয়া। বলুন আমার কাছে নিম্নলিখিত লাইন রয়েছে:

rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path

যতদূর আমি বুঝতে পেরেছি, এই লাইনটি rsyncপ্রাপ্য পথে যে ম্যাচগুলি মিলেছে না, সেগুলি বাদ দিয়ে প্রাপ্য পথে সমস্ত কিছু মুছে ফেলবে dont_delete_me। আমার এখন প্রশ্ন: প্রেরণকারী পক্ষের ম্যাচগুলিতে কিছুই না থাকলেও কি আরএসসিএনসি ফাইলগুলি মিলে যা সেইগুলির সাথে dont_delete_me মিলে যায় dont_delete_me?

উত্তর:


33

যদি আপনি ব্যবহার করেন --deleteএবং --excludeএকসাথে যা বাদ যায় সেটিতে থাকা ফাইলগুলি উত্স ফাইলগুলি সরানো হলেও মুছে ফেলা হবে না।

তবে এই বিষয়টি উত্থাপন করে যে ফোল্ডারটি মোটেও rsync'ডি' হবে না । সুতরাং সেই ফোল্ডারে আপনার অন্য একটি rsyncকাজের প্রয়োজন হবে sync

যেমন।

rsync -nav /home/richardjh/keepall/ /home/backup/richardjh/keepall/
rsync -nav --exclude=keepall --delete /home/richardjh /home/backup/richardjh

আপনি এগুলি অন্যভাবে চালাতে পারেন, তবে তারপরে এটি সমস্ত মুছে ফেলা ফাইলগুলি মুছে ফেলবে এবং তারপরে সেগুলি প্রতিস্থাপন করবে, যা এতটা কার্যকর নয়।

আপনি ওয়ান লাইনার হিসাবে এটি করতে পারবেন না।


ধন্যবাদ রিচার্ড আপনার উত্তর আমাকে ভাবতে বাধ্য করছে যে আমার আসল প্রশ্নটি আমি যা ভাবি তার চেয়ে সহজ হতে পারে। যদি আমি একক লাইনটি ব্যবহার করি :, এটি কী প্রাপ্তির পথে সমস্ত rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/pathকিছু rsyncমুছে ফেলবে না যা প্রেরণের পথে অস্তিত্বহীন, কেবল জিনিসগুলি বাদ দিয়ে dont_delete_me? সবচেয়ে বড় কথা, প্রেরণকারী পক্ষের ম্যাচগুলিতে কিছুই না থাকলেও কিrsync গ্রহণযোগ্যতার সাথে জিনিসগুলি dont_delete_me মিলবেdont_delete_me ? যদি তা হয় তবে আমি মনে করি এটি আমার একমাত্র লাইনের দরকার, তাই না?
অ্যামিলিও ওয়াজকেজ-রেইনা

আপনি সঠিক আছেন তবে আপনি যদি এক লাইনে এটি করেন তবে আপনি নতুন ফাইল এবং dont_delete_me ফোল্ডারে পরিবর্তন পাবেন না। আপনি যদি পরিবর্তনগুলি এবং সংযোজনগুলি সিঙ্ক করতে না চান, তবে আপনি এখানে বর্ণিত হিসাবে কেবল - এক্সক্লুড পতাকা ব্যবহার করতে পারেন।
রিচার্ড হলোয়ে

@ এমভিভি বাদযুক্ত ফাইলগুলি মুছে ফেলা হয় না --delete, যদি না আপনি স্পষ্টভাবে নির্দিষ্ট করে দেন --delete-excluded। RSSync ম্যানুয়ালটিতে --deleteএবং এর বিবরণ দেখুন --delete-excluded
গিলস 21:56-

4

আমি দেখতে পেয়েছি যে নিম্নলিখিত সমাধানগুলি আমার উদ্দেশ্যে কাজ করে:

rsync -r --exclude-from=do_not_send_to_dest --delete --exclude-from=do_not_modify_in_dest src/ dest

(দ্রষ্টব্য: যোগ -nবিকল্প একটি শুষ্ক রানের করতে হবে, আর পাল্টাবে না --deleteকরতে --delete-excluded!)

কমান্ডটি চালনার ফলে নিম্নলিখিত বৈশিষ্ট্যগুলি দেখা দেয়:

  • উত্স srcডিরেক্টরিটি অপরিবর্তিত রয়েছে
  • গন্তব্য destফোল্ডারটি বাদে উত্স ফোল্ডারের সাথে মেলে:

    • do_not_send_to_destতালিকার আইটেমগুলি গন্তব্যে প্রেরণ করা হয় না এবং
    • do_not_modify_in_destতালিকার আইটেমগুলি গন্তব্যটিতে অবিস্মরণীয় অবস্থায় রয়েছে।
  • (দ্রষ্টব্য: অস্তিত্বের আইটেমগুলির যে কোনও একটিতে do_not_ফাইল তালিকাভুক্ত হওয়া কোনও সমস্যা নয় ))

ব্যাখ্যা

আমার ধারণা, আরএসআইএনসি বাম থেকে ডানদিকে কমান্ড লাইন আর্গুমেন্টগুলি পড়ে, --deleteযুক্তিটি অভ্যন্তরীণভাবে "স্যুইচ মোডগুলি" (একটি অর্থে) আরএসসিএনকে কারণ হিসাবে --exclude-fromআবার বিকল্পটির দ্বিতীয় ব্যবহারের অনুমতি দেয় বলে মনে করে a

সতর্কীকরণ:

  • যদি do_not_send_to_destতালিকার কোনও আইটেম ইতিমধ্যে গন্তব্যে উপস্থিত থাকে তবে:

    • এই কমান্ডটি সেই আইটেমটিকে গন্তব্য থেকে সরবে না (যদি না প্রথমে আইটেমটি উত্স ডিরেক্টরি থেকে সরানো হয় না)
    • সতর্কতা: আপনার দুটি তালিকার যে কোনও একটিতে তালিকাভুক্ত গন্তব্যের সমস্ত কিছু মুছে ফেলবে তা পরিবর্তন --deleteকরা --delete-excluded। এক্সডি (সম্ভবত আরএসএনসি খোলা / নমনীয় হওয়ার জন্য লিখিত ছিল, তবে কিছু সংক্ষিপ্তসার আছে?)

হালকাভাবে ব্যবহার পরীক্ষা করা হয়েছে।

আমি " rsync version 3.0.9 protocol version 30" ব্যবহার করছি ।

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