কীভাবে কেবল নতুন ফাইলগুলিকে আরএসএনসি করবেন


143

আমি পরে আমার সাথে নতুন উত্পন্ন ফাইল যুক্ত করে দূরবর্তী সার্ভারে আমার মূল ওয়েব সার্ভারটি সিঙ্ক্রোনাইজ করার জন্য আরএসসিঙ্ক স্থাপন করার চেষ্টা করছি।

আমি যে আদেশটি ব্যবহার করি তা এখানে:

rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar

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


2
আপনি ফাইল সিঙ্ক করতে চান করতে দূরবর্তী সার্ভারে, জগতের শেষ আসা উচিত নয়? অর্থাত্ rsync /foo/bar remoteuser@remotehost:/foo/bar
ostrokach

আপনি এই ওয়েবপৃষ্ঠা দ্বারা আগ্রহী হতে পারে । এছাড়াও, ফাইল সিস্টেমটি সম্পর্কে সতর্কতা অবলম্বন করুন। যদি সার্ভারের ফাইল সিস্টেমগুলি সেই সমস্ত -aবিকল্প বোঝায় (মালিক, গোষ্ঠী, পারমস, ...) সমর্থন করে না তবে এটি আমাদের সমস্যার কারণ হওয়া উচিত।
পিআরপি

2
স্থানীয় ফাইলগুলি প্রত্যন্ত গন্তব্যে সম্পূর্ণ অনুলিপি করা হয়নি এমন উত্তরের কোনওটিই সমাধান করে না এবং আপনি কেবল নতুন ফাইলগুলিই সিএসএনসি করতে চান।
এক্সেল ব্রেগনসবো

আমি স্রেফ -cঅপশনটি পেয়েছি । এটি পরিবর্তনের সময় বা আকারের পরিবর্তে চেকসামের ভিত্তিতে বিদ্যমান ফাইলগুলি এড়িয়ে যায়।
1'18 এ হেঁটে দিন

উত্তর:


180

থেকে man rsync:

--ignore-existing       skip updating files that exist on receiver

--updateকিছুটা আলাদা কিছু করে, সম্ভবত আপনি অপ্রত্যাশিত ফলাফল পাচ্ছেন (দেখুন man rsync):

গন্তব্যস্থলে বিদ্যমান যে কোনও ফাইল এড়ানোর জন্য এটি আরএসসিএনকে বাধ্য করে এবং একটি পরিবর্তিত সময় রয়েছে যা উত্স ফাইলের চেয়ে নতুন । (যদি কোনও বিদ্যমান গন্তব্য ফাইলে উত্স ফাইলের সমান পরিবর্তনের সময় থাকে তবে আকারগুলি পৃথক হলে তা আপডেট হবে))


1
আসলে আমি কমান্ডটি '--update' এর পরিবর্তে '--ignore-বিদ্যমান' দিয়ে চেষ্টা করেছিলাম। এটি দ্রুত শেষ হয়েছে তবে নতুন ফাইলগুলি দূরবর্তী হোস্টে রাখে না। কোন ধারনা? ধন্যবাদ
সুপারমারিও

13
ম্যান পেজগুলি স্তন্যপান করে (ঠিক আমি সেখানে গিয়েছিলাম), এক্ষেত্রে, এর --ignore-existingঅর্থ কি এই যে ফাইলগুলি রিসিভারে বিদ্যমান তা স্থানান্তর করে না, বা যদি একই নামের কিছু ফাইল / ফোল্ডার রিসিভারে উপস্থিত থাকে তবে ফাইল স্থানান্তর করবেন না?
puk

7
--update নেই ফাইল লাফালাফি যখন mtimes অভিন্ন (যা হয় না তা বাক্যে কথন বোঝা)। আমি এটি পরীক্ষা করেছি। আমি বিশ্বাস করি শব্দটি আরও ভালভাবে বোঝা যাবে যদি এটি যদি বলে যে "কেবলমাত্র গন্তব্যস্থলের চেয়ে নতুন ফাইলগুলি অনুলিপি করা হবে" said
অক্টোপাস

4
@ অ্যাক্টপাস "কেবলমাত্র উত্স ফাইলগুলি যা গন্তব্যের চেয়েও নতুন। অনুলিপি করা হবে" ... বা উত্স ফাইলগুলির গন্তব্য ফাইলের অংশগুলির মতো একই পরিবর্তনের সময় রয়েছে তবে বিভিন্ন আকার রয়েছে । আমি মনে করি এটি একটি গুরুত্বপূর্ণ বিষয়। (ক্রিস ইতিমধ্যে এটি আবৃত করেছেন, ধন্যবাদ)
জোনাথন কোমার

সুতরাং আপনার প্রয়োজন --ignore- বিদ্যমান এবং -r (পুনরাবৃত্ত)। -v (ভার্বোস) খুব ভাল লাগছে :-)
ডাচউঙ্কেল

40

আমার ক্ষেত্রে আমার অনুরূপ সমস্যা ছিল, কেবলমাত্র পরিবর্তিত / নতুন ফাইলের পরিবর্তে সমস্ত ফাইল স্থানান্তরিত হয়েছিল। আমি এটি পরামিতি -t(পরিবর্তে -a) এবং -P(সমতুল্য ) ব্যবহার করে সমাধান করেছি --partial --progress:

rsync -h -v -r -P -t উত্স লক্ষ্য

এটি কেবলমাত্র নতুন ফাইল এবং ইতিমধ্যে বিদ্যমান তবে সংশোধিত ফাইলগুলি স্থানান্তর -aকরে : ব্যবহারকারী এবং গোষ্ঠী আইডি সিঙ্কের মতো খুব বেশি করে, যা আমার ক্ষেত্রে এবং টার্গেট সিস্টেমে আমার বিভিন্ন ব্যবহারকারী এবং গোষ্ঠী থাকায় আমার কাজ করতে পারে না।

বিশদভাবে পরামিতি:

  • -h: মানব পাঠযোগ্য সংখ্যা
  • -v: ক্রিয়াপদ
  • -r: ডিরেক্টরিতে পুনরাবৃত্তি
  • -P: --partial(আংশিক স্থানান্তরিত ফাইলগুলি রাখুন) +
            --progress(স্থানান্তরকালে অগ্রগতি দেখান)
  • -t: পরিবর্তনের সময় সংরক্ষণ করুন

2
'-এর জন্য +1 খুব বেশি করে দেয় indeed (প্রকৃতপক্ষে -rlptgoDঅনুমতিটি চূড়ান্তভাবে না হয়, গোষ্ঠী এবং মালিক সংরক্ষণ করা যায় না - আমার সাধারণ প্লে-সেফ ব্যাকআপ নয় ...)
ফ্রাঙ্ক নোক

2

Rsync নিয়ে আমার অভিজ্ঞতা থেকে, 1TB পার্টিশনের অনুলিপিটি দক্ষ হওয়ার পক্ষে খুব বড়। এটি প্রক্রিয়া করতে চিরকালের জন্য rsync লাগে। পরিবর্তে, এটি উপ-ডিরেক্টরি দ্বারা করুন। অর্থাৎ প্রতিটি মূল উপ-ডিরেক্টরিতে rsync চালান এটি কয়েক হাজার ফাইল জাগল করতে না পারলে এটি অনেক দ্রুত যায়।


1
সম্ভবত আপনি মেমরি হারিয়েছেন এবং আপনার সিস্টেমের অদলবদল শুরু হয়েছে?
মার্সেল বুখার্ড

-2

চেষ্টা

rsync -zvrt --update SOURCE DESTN

8
ওপরের জন্য উপরের কমান্ডটির আরও কিছুটা ব্যাখ্যা প্রশংসিত হবে।
Peschke

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