“লেজ -ফ” এবং “লেজ-এফ” এর মধ্যে পার্থক্য কী?


41

আমি এর tail -Fপরিবর্তে কমান্ডটি সর্বদা ব্যবহার করি নি tail -fতবে যে কেউ আমাকে বলেছে যে -Fঅনেক ব্যাখ্যা ছাড়াই ভাল।

আমি টেল কমান্ডের জন্য ম্যান পৃষ্ঠাটি সন্ধান করেছি।

-f output appended data as the file grows;

-F Same as --follow=name --retry

--retry Keep trying to open a file even when it is or becomes inaccessible

নিম্নটি ​​কী -fকরে তা বোঝা সহজ তবে উচ্চতর ক্ষেত্রে -Fকী করার চেষ্টা করছে তা আমি অনুসরণ করি না । আমি কেউ আমাকে পার্থক্য ব্যাখ্যা করতে পারেন প্রশংসা করব।

উত্তর:


75

আপনি GNU tailইউটিলিটি বর্ণনা করেন । এই দুটি পতাকাটির মধ্যে পার্থক্য হ'ল আমি যদি কোনও ফাইল খুলি, উদাহরণস্বরূপ একটি লগ ফাইল, এটির মতো:

$ tail -f /var/log/messages

... এবং যদি আমার মেশিনে লগ রোটেশন সুবিধা যদি সেই বার্তাগুলি আমার কাছে লেখা হয় দেখানোর সময় সেই লগ ফাইলটি ঘোরানোর সিদ্ধান্ত নেয় ("ঘোরান" মানে মুছুন বা অন্য কোনও জায়গায় চলে যাওয়া ইত্যাদি), আমি যে আউটপুট দেখছি তা ঠিক হবে বন্ধ।

যদি আমি এইভাবে ফাইলটি খুলি tail:

$ tail -F /var/log/messages

... এবং আবার, ফাইল আবর্তিত হয়, আউটপুট আমার কনসোলে প্রবাহিত কারণ থাকবে tailতাড়াতাড়ি এটা আবার পাওয়া হয়ে ওঠে, অর্থাত্ যখন প্রোগ্রাম (গুলি) লগ লিখিতভাবে লিখিতভাবে শুরু হিসাবে ফাইল খুলে যাবে নতুন /var/log/messages

ফ্রি বিএসডি সিস্টেমে কোনও -Fবিকল্প নেই, তবে আপনি বার্তাটি পেয়েছেন এমন পার্থক্যের সাথে, জিএনইউ সিস্টেমের tail -fমতো আচরণ করবেtail -F

tail: file has been replaced, reopening.

আউটপুটে আপনি যে ফাইলটি পর্যবেক্ষণ করছেন তা অদৃশ্য হয়ে যায় এবং আবার দেখা যায়।


আপনি এটি পরীক্ষা করতে পারেন

একটি শেল সেশনে, করুন

$ cat >myfile

এটি এখন আপনার স্টাফ টাইপ করার জন্য অপেক্ষা করবে। কেবল এগিয়ে যান এবং কিছু গীবেরিশ টাইপ করুন, কয়েকটি লাইন। এটি সব ফাইলে সংরক্ষণ করা হবে myfile

ইন আরেকটি শেল অধিবেশন (হয়তো অন্য টার্মিনালে, বিঘ্নিত ছাড়াcat ):

$ tail -f myfile

এটি myfileকনসোলে থাকা সামগ্রীর (শেষের দিকের) সামগ্রী প্রদর্শন করবে । আপনি যদি প্রথম শেল সেশনে ফিরে যান এবং আরও কিছু টাইপ করেন তবে সেই আউটপুটটি তত্ক্ষণাত tailদ্বিতীয় শেল সেশনে প্রদর্শিত হবে।

এখন প্রস্থান catটিপে Ctrl+D, এবং অপসারণmyfile ফাইল:

$ rm myfile

তারপরে আবার বিড়ালটি চালান:

$ cat >myfile

... এবং কিছু টাইপ করুন, কয়েকটি লাইন।

জিএনইউ দিয়ে tailএই লাইনগুলি দ্বিতীয় শেল সেশনে প্রদর্শিত হবে না (যেখানে tail -fএখনও চলছে)।

অনুশীলনটি পুনরাবৃত্তি করুন tail -Fএবং পার্থক্যটি পর্যবেক্ষণ করুন।


আচ্ছা বুঝলাম. আমার কাছে foo.log এর মতো একটি সিস্টেম লগ ফাইল রয়েছে তখন আমি foo.log এর সাথে মাঝে মাঝে foo_06242016.log দেখতে পাই। সুতরাং আমি foo.log লেজ চালাচ্ছি, এটি foo_06242016.log নির্দেশ করবে?
দায়েং

1
@ দায়েং নং, বেশ নয় আপনি যদি চালনা করেন tail -f foo.logএবং আপনার সিস্টেমটি foo.logউদাহরণস্বরূপ চলে যায় তবে আপনি foo.log.0.gzযে আউটপুট দেখেন তা কেবল বন্ধ হয়ে যাবে। আপনি যদি -Fঅন্যদিকে ব্যবহার করেন তবে আপনি নতুন বিষয়বস্তুগুলি foo.logকোনও বিরতি ছাড়াই দেখতে পাবেন ।
কুসালানন্দ

4
+1 ... GNU এর বাস্তবায়নের জন্য আপনার উত্তর সীমাবদ্ধ না করার জন্য, আপনাকে অন্য পরিবেশে কী আশা করা যায় তা জনগণকে জানাতে দেওয়ার জন্য আপনাকে ধন্যবাদ।
তোগাম

2
উদাহরণ সহ খুব সুন্দর চিত্রণ।
একটি সিভিএন

1
@ কুসালানন্দ: অনুশীলনের জন্য আপনাকে ধন্যবাদ। আমি পার্থক্যটি পর্যবেক্ষণ করেছি এবং এটি আমাকে লেজ - ট এবং লেজ - এফ কী করে তা আরও ভালভাবে বুঝতে সাহায্য করেছে। একটি অনুগ্রহপূর্ণ দিনের কামনা!
দায়েং

14

সরল, আপনি যখন কোনও ফাইল খুলবেন, আপনি এমন ইনোড পাবেন যাতে কিছুটা মেটাডেটা রয়েছে যেখানে ফাইলটি আপনার ডিস্কে ঠিক আছে। লেজটি তখন সেই ফাইলটিতে পরিবর্তনগুলি শুনবে।

আপনি যদি ফাইলটি অপসারণ করেন এবং একই নামের সাথে একটি নতুন নাম তৈরি করেন তবে ফাইলের নামটি একই হবে তবে এটি একটি আলাদা ইনোড (এবং সম্ভবত আপনার ডিস্কের অন্য কোনও জায়গায় সঞ্চিত) রয়েছে। tail -fপুনরায় চেষ্টা করবেন না এবং নতুন ইনোড লোড করুন, tail -Fএটি সনাক্ত করবে।

আপনি যদি কোনও ফাইলের নাম পরিবর্তন / স্থানান্তর করেন তবে একই প্রভাব ঘটবে। যদি আপনি উদাহরণস্বরূপ অনুসরণ করেন /var/log/messagesএবং লোগ্রোটেট লগকে ঘোরান /var/log/messages.1। লেজটি -fএখনও পুরাতন ইনোড শুনবে যা নির্দেশ করে messages.1। লেজটি -Fএটি উপলব্ধি করবে এবং নতুন ইনোডটি পড়বে।


তোমার ব্যাখ্যার জন্য ধন্যবাদ. এটি এখন আমার কাছে অনেক তাৎপর্যপূর্ণ।
দায়েং

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