এফ +++++++++ এর আরএসসিএন লগের অর্থ কী?


116

আমি rsyncআমার সার্ভার ফাইলগুলির ব্যাকআপ তৈরি করতে ব্যবহার করছি এবং আমার দুটি প্রশ্ন রয়েছে:

  1. প্রক্রিয়াটির মাঝখানে আমার থামতে হবে এবং আবার শুরু rsyncকরতে হবে।
    হবে rsyncবিন্দু যেখানে এটি থামানো বা এটা শুরু থেকে পুনরায় চালু হবে থেকে শুরু?

  2. লগ ফাইল আমি দেখতে "f+++++++++"। এর মানে কী?

উদাহরণ:

2010/12/21 08:28:37 [4537] >f.st...... iddd/logs/website-production-access_log
2010/12/21 08:29:11 [4537] >f.st...... iddd/web/website/production/shared/log/production.log
2010/12/21 08:29:14 [4537] .d..t...... iddd/web/website/production/shared/sessions/
2010/12/21 08:29:14 [4537] >f+++++++++ iddd/web/website/production/shared/sessions/ruby_sess.017a771cc19b18cd
2010/12/21 08:29:14 [4537] >f+++++++++ iddd/web/website/production/shared/sessions/ruby_sess.01eade9d317ca79a

উত্তর:


196

আসুন একনজরে দেখে নেওয়া যাক আরএসএনসি কীভাবে কাজ করে এবং ক্রিপ্টিক ফলাফলের লাইনগুলি আরও ভালভাবে বুঝতে পারে:

1 - আরএসআইএনসি-র একটি বিশাল সুবিধা হ'ল পরের বার কোনও বাধা দেওয়ার পরে এটি সহজেই চালিয়ে যাওয়া।

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

2 - প্রতিটি অক্ষর এমন একটি কোড যা আপনি যদি বিভাগের জন্য পড়েন তবে অনুবাদ করা -i, --itemize-changesযায়man rsync

প্রশ্ন থেকে আপনার উদাহরণ লগ ফাইল ডিকোডিং:

> F.st ......

> - the item is received
f - it is a regular file
s - the file size is different
t - the time stamp is different

.d..t ......

. - the item is not being updated (though it might have attributes 
    that are being modified)
d - it is a directory
t - the time stamp is different

> চ +++++++++

> - the item is received
f - a regular file
+++++++++ - this is a newly created item

Rsync ম্যান পৃষ্ঠার প্রাসঙ্গিক অংশ:

-আই, --itemize- পরিবর্তন

বৈশিষ্ট্য পরিবর্তনগুলি সহ প্রতিটি ফাইলে যে পরিবর্তনগুলি করা হচ্ছে তার একটি সাধারণ আইটেমযুক্ত তালিকার অনুরোধ। এটি --out-format = '% i% n% L' উল্লেখ করার মতোই। আপনি যদি অপশনটি পুনরাবৃত্তি করেন তবে অপরিবর্তিত ফাইলগুলিও আউটপুট হবে, তবে কেবল গ্রাহক আরএসসিএন কমপক্ষে ২.6. version সংস্করণ হলে (আপনি আরএসইএনসি-র পুরানো সংস্করণ সহ -vv ব্যবহার করতে পারেন, তবে এটি অন্যান্য ভার্বোস মেস- ঋষির)।

"% I" প্লেসের একটি ক্রিপটিক আউটপুট রয়েছে যা 11 টি অক্ষরের দীর্ঘ। সাধারণ ফর্ম্যাটটি YXcstpoguax স্ট্রিংয়ের মতো, যেখানে ওয়াই প্রতিস্থাপনটি করা হচ্ছে আপডেটের ধরণ দ্বারা প্রতিস্থাপিত হয়, এক্স-ফাইল-টাইপ দ্বারা প্রতিস্থাপন করা হয়, এবং অন্যান্য অক্ষরগুলি এমন বৈশিষ্ট্যগুলি উপস্থাপন করে যাগুলি যদি সংশোধন করা হয় তবে আউটপুট হতে পারে।

Y এর প্রতিস্থাপনকারী আপডেটের ধরনগুলি নিম্নরূপ:

  • এর <অর্থ একটি ফাইল দূরবর্তী হোস্টে স্থানান্তরিত হচ্ছে (প্রেরিত)।
  • এর >অর্থ একটি ফাইল স্থানীয় হোস্টে স্থানান্তরিত হচ্ছে (প্রাপ্ত)।
  • এর cঅর্থ হল যে আইটেমটির জন্য স্থানীয় পরিবর্তন / সৃষ্টি ঘটছে (যেমন ডিরেক্টরি তৈরি করা বা সিমলিংকের পরিবর্তন ইত্যাদি)।
  • এর hঅর্থ হ'ল আইটেমটি অন্য আইটেমের একটি হার্ড লিঙ্ক (প্রয়োজন --হরড-লিঙ্কগুলি)।
  • এর .অর্থ হ'ল আইটেমটি আপডেট হচ্ছে না (যদিও এটির মধ্যে এমন কিছু বৈশিষ্ট্য রয়েছে যা সংশোধন করা হচ্ছে)।
  • এর *অর্থ হ'ল বাকী আইটেমযুক্ত-আউটপুট অঞ্চলে একটি বার্তা রয়েছে (উদাহরণস্বরূপ "মোছা")।

ফাইল-ধরনের যে এক্স প্রতিস্থাপন আছেন: fএকটি ফাইল, একটি dএকটি ডিরেক্টরি, একটি Lএকটি সিমবলিক লিঙ্ক, একটি Dএকটি ডিভাইসের জন্য, এবং একটি Sএকটি বিশেষ ফাইলের জন্য (যেমন নামে সকেট এবং fifos)।

উপরের স্ট্রিংয়ের অন্যান্য অক্ষরগুলি হ'ল প্রকৃত অক্ষরগুলি হ'ল আউটপুট হবে যদি আইটেমের সাথে সম্পর্কিত বৈশিষ্ট্য আপডেট করা হয় বা একটি "।" কোন পরিবর্তন জন্য। এর তিনটি ব্যতিক্রম হ'ল: (১) নতুন তৈরি হওয়া আইটেম প্রতিটি অক্ষরকে "+" দিয়ে প্রতিস্থাপন করে, (২) একটি অভিন্ন আইটেম বিন্দুগুলি ফাঁকা স্থানের সাথে প্রতিস্থাপন করে, এবং (৩) একটি অজানা বৈশিষ্ট্য প্রতিটি বর্ণকে "একটি" দিয়ে প্রতিস্থাপন করে? " (পুরানো আরএসসিএনসি-এর সাথে কথা বলার সময় এটি ঘটতে পারে)।

প্রতিটি বর্ণের সাথে সম্পর্কিত যে বৈশিষ্ট্যটি নিম্নরূপ:

  • এর cঅর্থ হ'ল নিয়মিত ফাইলটির আলাদা চেকসাম থাকে (--checksum প্রয়োজন) অথবা একটি সিমিলিংক, ডিভাইস বা বিশেষ ফাইলের পরিবর্তিত মান রয়েছে। মনে রাখবেন যে আপনি যদি 3.0.1 এর আগে একটি আরএসসিঙ্কে ফাইল পাঠাচ্ছেন তবে এই পরিবর্তন পতাকাটি কেবলমাত্র চেকসাম-ডিফারিং নিয়মিত ফাইলগুলির জন্য উপস্থিত থাকবে।
  • এর sঅর্থ একটি নিয়মিত ফাইলের আকার পৃথক এবং ফাইল স্থানান্তর দ্বারা আপডেট হবে।
  • এর tঅর্থ পরিবর্তনের সময়টি আলাদা এবং প্রেরকের মানটিতে আপডেট করা হয় (সময় প্রয়োজন)। টি এর বিকল্প মানটির অর্থ হ'ল পরিবর্তনের সময়টি স্থানান্তরের সময়টিতে সেট করা হবে, যা কোনও ফাইল / সিমিলিংক / ডিভাইস - টাইম ছাড়াই আপডেট করা হয় এবং যখন একটি সিমলিংক পরিবর্তন করা হয় এবং গ্রহণকারী তার সময় নির্ধারণ করতে পারে না। (দ্রষ্টব্য: একটি rsync 3.0.0 ক্লায়েন্ট ব্যবহার করার সময়, আপনি এই টাইম-সেটিং ব্যর্থতার জন্য যথাযথ টি পতঙ্গের পরিবর্তে টিয়ের সাথে সংযুক্ত পতাকাটি দেখতে পাবেন))
  • এর pঅর্থ অনুমতিগুলি পৃথক এবং প্রেরকের মানটিতে আপডেট করা হয় (প্রয়োজন - স্পার্ম)।
  • এর oঅর্থ হল মালিক পৃথক এবং প্রেরকের মানটিতে আপডেট করা হচ্ছে (মালিক এবং সুপার-ব্যবহারকারীর সুবিধাগুলি প্রয়োজন)।
  • এর gঅর্থ গ্রুপটি আলাদা এবং প্রেরকের মানটিতে আপডেট করা হচ্ছে (গ্রুপটি নির্ধারণের জন্য - গোষ্ঠী এবং কর্তৃত্ব প্রয়োজন)।
  • uস্লট ভবিষ্যতে ব্যবহারের জন্য সংরক্ষিত।
  • এর aঅর্থ এসিএল তথ্য পরিবর্তিত হয়েছে।
  • এর xঅর্থ বর্ধিত বৈশিষ্ট্যের তথ্য পরিবর্তিত হয়েছে।

অন্য একটি আউটপুট সম্ভব: ফাইল মুছে ফেলার সময়, "% i" সরানো হচ্ছে এমন প্রতিটি আইটেমের জন্য "* মুছে ফেলা" স্ট্রিং আউটপুট দেবে (ধরে নিই যে আপনি একটি সাম্প্রতিক পর্যায়ে আরএসএনসি-র সাথে কথা বলছেন যে এটি আউটপুট না করে মুছে ফেলা লগইন করে একটি ভার্বোজ বার্তা)।


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

101

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

আমি এই তথ্যটি এখানে আশাবাদে পোস্ট করছি যে এটি অন্যকে যারা (আমার মতো) অনুসন্ধানের মাধ্যমে এই পৃষ্ঠায় হোঁচট খেয়েছে এবং এর আরও ভাল ব্যাখ্যা প্রয়োজন তাদের সহায়তা করে rsync

সমন্বয় সঙ্গে --itemize-changesপতাকা এবং-vvv পতাকা, rsyncআমাদের সব ফাইল সিস্টেম পরিবর্তন উৎস ডিরেক্টরির মধ্যে চিহ্নিত করা হয়েছে যখন গন্তব্যের ডিরেক্টরি তুলনায় বিস্তারিত আউটপুট দেয়। বিট পতাকা দ্বারা উত্পাদিত rsyncতারপর কি পরিবর্তন হয়েছে তা নির্ধারণ করার জন্য ডিকোড করা যায়। প্রতিটি বিটের অর্থ ডিকোড করতে, নিম্নলিখিত টেবিলটি ব্যবহার করুন।

rsyncএর আউটপুটে প্রতিটি বিট অবস্থান এবং মানের ব্যাখ্যা :

YXcstpoguax  path/to/file
|||||||||||
||||||||||╰- x: The extended attribute information changed
|||||||||╰-- a: The ACL information changed
||||||||╰--- u: The u slot is reserved for future use
|||||||╰---- g: Group is different
||||||╰----- o: Owner is different
|||||╰------ p: Permission are different
||||╰------- t: Modification time is different
|||╰-------- s: Size is different
||╰--------- c: Different checksum (for regular files), or
||              changed value (for symlinks, devices, and special files)
|╰---------- the file type:
|            f: for a file,
|            d: for a directory,
|            L: for a symlink,
|            D: for a device,
|            S: for a special file (e.g. named sockets and fifos)
╰----------- the type of update being done::
             <: file is being transferred to the remote host (sent)
             >: file is being transferred to the local host (received)
             c: local change/creation for the item, such as:
                - the creation of a directory
                - the changing of a symlink,
                - etc.
             h: the item is a hard link to another item (requires 
                --hard-links).
             .: the item is not being updated (though it might have
                attributes that are being modified)
             *: means that the rest of the itemized-output area contains
                a message (e.g. "deleting")

বিভিন্ন পরিস্থিতিতে কিছু পরিস্থিতিতে উদাহরণস্বরূপ আরএসসিএনসি থেকে:

>f+++++++++ some/dir/new-file.txt
.f....og..x some/dir/existing-file-with-changed-owner-and-group.txt
.f........x some/dir/existing-file-with-changed-unnamed-attribute.txt
>f...p....x some/dir/existing-file-with-changed-permissions.txt
>f..t..g..x some/dir/existing-file-with-changed-time-and-group.txt
>f.s......x some/dir/existing-file-with-changed-size.txt
>f.st.....x some/dir/existing-file-with-changed-size-and-time-stamp.txt 
cd+++++++++ some/dir/new-directory/
.d....og... some/dir/existing-directory-with-changed-owner-and-group/
.d..t...... some/dir/existing-directory-with-different-time-stamp/

ক্যাপচারিংয়ের rsyncআউটপুট (বিট ফ্ল্যাগগুলির উপর দৃষ্টি নিবদ্ধ করা):

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

এই কৌশলটির একটি সহজ ব্যবহার হ'ল --dry-runকমান্ডটিতে পতাকা যুক্ত করা এবং রাইসাইক দ্বারা নির্ধারিত পরিবর্তনের তালিকাটি একটি ভেরিয়েবলে (কোনও পরিবর্তন না করে) সংগ্রহ করা যাতে আপনি নিজেই তালিকায় কিছু প্রক্রিয়াজাত করতে পারেন। নিম্নলিখিত মত কিছু আউটপুট একটি চলক মধ্যে ক্যাপচার করবে:

file_system_changes=$(rsync --archive --acls --xattrs \
    --checksum --dry-run \
    --itemize-changes -vvv \
    "/some/source-path/" \
    "/some/destination-path/" \
| grep -E '^(\.|>|<|c|h|\*).......... .')

উপরের উদাহরণে, (স্টডআউট) আউটপুট rsyncপুনর্নির্দেশ করা হয়েছে grep(স্ট্ডিনের মাধ্যমে) যাতে আমরা বিট পতাকাযুক্ত কেবলমাত্র লাইনগুলি পৃথক করতে পারি।

গৃহীত আউটপুট প্রক্রিয়াজাতকরণ:

ভেরিয়েবলের বিষয়বস্তুগুলি পরে ব্যবহারের জন্য লগ করা যেতে পারে বা আগ্রহী আইটেমগুলির জন্য অবিলম্বে পুনরাবৃত্তি করা যেতে পারে। আমি আরও সঠিকরূপে গবেষণার সময় আমার লিখিত স্ক্রিপ্টটিতে এই সঠিক কৌশলটি ব্যবহার করি rsync। নতুন ফাইল, নকল ফাইল (একই নাম, একই বিষয়বস্তু), ফাইল সংঘর্ষ (একই নাম, ভিন্ন) আলাদা করতে ক্যাপচার আউটপুট পোস্ট-প্রসেসিংয়ের উদাহরণগুলির জন্য আপনি স্ক্রিপ্টটিতে ( https://github.com/jmmitchell/movestough ) দেখতে পারেন বিষয়বস্তু), পাশাপাশি সাব-ডিরেক্টরি ডিরেক্টরিতে পরিবর্তনগুলি।


1
খুব দরকারী! লগ আউটপুট -T কি?
পোল হ্যালেন

পোল, আপনি কি আরএসআইএনসি-র জন্য টি পতাকা সম্পর্কে জিজ্ঞাসা করছেন?
জন মার্ক মিচেল

পোল, যদি আমি আপনার প্রশ্নটি সঠিকভাবে বুঝতে পারি তবে, rsync লগের টি মানে দুটি ফাইলের তুলনায় আলাদা টাইমস্ট্যাম্প রয়েছে। মানে তারা বিভিন্ন সময়ে তৈরি বা সংশোধিত হয়েছিল।
জন মার্ক মিচেল

3
আমি বিশ্বাস করি আউটপুটে "টি" এর অর্থ সময়টি বর্তমান সময়ে আপডেট হয়েছিল, "<f..T ...... রাইজ.এমপি 3"। কমপক্ষে এটি আমি পর্যবেক্ষণ করছি। "টি" স্থানীয় ফাইলের সময় হবে।
সি কেলি

1
আমি কয়েক বছর দেরি করে ফেলেছি, তবে "টি" বনাম "টি" ম্যান পৃষ্ঠায় ব্যাখ্যা করা হয়েছে: একটি টি মানে পরিবর্তনের সময়টি আলাদা এবং প্রেরকের মানকে আপডেট করা হয় (সময় প্রয়োজন)। টি এর বিকল্প মানটির অর্থ হ'ল পরিবর্তনের সময়টি স্থানান্তরের সময়টিতে সেট করা হবে, যা কোনও ফাইল / সিমিলিংক / ডিভাইস - টাইম ছাড়াই আপডেট করা হয় এবং যখন একটি সিমলিংক পরিবর্তন করা হয় এবং গ্রহণকারী তার সময় নির্ধারণ করতে পারে না। (দ্রষ্টব্য: একটি rsync 3.0.0 ক্লায়েন্ট ব্যবহার করার সময়, আপনি এই সময়-সেটিং ব্যর্থতার জন্য যথাযথ টি
পতঙ্গের

2

1) Wodin, এটি সম্পূর্ণ সত্য নয়। - পার্টিশিয়াল বা -পি ট্যাগ ব্যবহার করা হলে (- পার্টিশিয়াল - প্রপ্রেস সমান) আরএসসিএনসি বাধাগুলি স্থানান্তর পুনরায় শুরু করে।

2) হুবহু, এটি --itemize- পরিবর্তন ট্যাগের জন্য সাধারণ আউটপুট।


2

১) এটি "সিঙ্ক পুনরায় চালু করবে", তবে এটি একই আকার এবং টাইমস্ট্যাম্প ইত্যাদি ফাইলগুলি স্থানান্তরিত করবে না It এটি স্থানান্তর করার জন্য প্রথমে ফাইলগুলির একটি তালিকা তৈরি করে এবং এই পর্যায়ে এটি দেখতে পাবে যে এটি ইতিমধ্যে কিছু ফাইল স্থানান্তর করেছে see এবং সেগুলি এড়িয়ে যাবে। আপনার টাইমস্ট্যাম্প ইত্যাদি সংরক্ষণের জন্য rsync কে বলা উচিত (যেমন ব্যবহার করে rsync -a ...)

যখন rsync একটি ফাইল স্থানান্তর করছে, এটি এটিকে .filename.XYZABCপরিবর্তে কিছু বলবে filename। তারপরে এটি যখন ফাইলটি স্থানান্তর শেষ করে এটি এর নতুন নামকরণ করবে। সুতরাং, যদি আপনি কোনও বড় ফাইল স্থানান্তর করার সময় আরএসসিএনকে হত্যা করেন তবে আপনাকে স্ক্র্যাচ থেকে আরম্ভ না করে স্থানান্তর চালিয়ে যেতে - পার্টিশিয়াল বিকল্পটি ব্যবহার করতে হবে।

২) আমি জানি না এটি কী। আপনি কিছু উদাহরণ পেস্ট করতে পারেন?

সম্পাদনা: http://ubuntuforums.org/showthread.php?t=1342171 অনুসারে -i, --itemize-changesবিকল্পগুলির জন্য বিভাগগুলির আরএসসিএন ম্যান পৃষ্ঠাতে এই কোডগুলি সংজ্ঞায়িত করা হয়েছে ।

আমার উত্তরটি জোওয়ের উপর ভিত্তি করে স্থির অংশ


আমি উপরে কিছু লগ উদাহরণ স্থাপন। ধন্যবাদ।
গডফাদার

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