ফাইলের নাম অনুসরণ করে "টেল-ফ" এর বিকল্প


59

টাইম ঘোরানো ফাইল লগার ব্যবহার করে আমার কিছু লগ তৈরি হচ্ছে। এই নামক কোনও ফাইলে লগ হয় tool.logএবং মধ্যরাতে এটি এটিকে সরায় tool.log.<date>এবং একটি নতুন শুরু করে tool.log

tail -f tool.logলগগুলিতে নজর রাখার জন্য আমার মেশিনে একটি দৌড় রয়েছে, তবে মধ্যরাতে, যখন tool.logনামটি পরিবর্তন করা হয় tool.log.<date>, tailপুনরায় নামকরণ করা ফাইলটি চালিয়ে যেতে থাকে।

আমি যা প্রত্যাশা করছি তা একটি সরঞ্জাম যা এর অনুরূপ tailতবে tool.logএটি ইনোড অনুসরণ না করে নামকরণ করা ফাইলটি পর্যবেক্ষণ করতে থাকবে ।

এর মতো কি কিছু আছে? যদি তা না হয় তবে পাইথনে আমি এই উদ্দেশ্যে লিখতে পারি।

উত্তর:


90

কিছু বাস্তবায়নের জন্য এর tailবিকল্প রয়েছে; GNU লেজের জন্য ম্যান পৃষ্ঠা থেকে এখানে বর্ণনাটি দেওয়া হয়েছে:

-F
একই রকম --follow=name --retry

-f, --follow[ ={ নাম | বর্ণনাকারী }]
ফাইল বাড়ার সাথে সাথে আউটপুট সংযুক্ত ডেটা; -f, --followএবং --follow=descriptorসমতুল্য

--retry
কোনও ফাইল যখন এটি অ্যাক্সেসযোগ্য বা অ্যাক্সেসযোগ্য হয় তখনও এটি খোলার চেষ্টা চালিয়ে যান; নাম অনুসারে, অর্থাত্‍ যখন অনুসরণ করেন তখন কার্যকর--follow=name

এই বিকল্পটি পসিক্স দ্বারা সুনির্দিষ্ট না করায় আপনি এটিকে সর্বত্র নির্ভর করতে পারবেন না। কিছু পরিচিত বাস্তবায়ন:

  • GNU --Fউপরে বর্ণিত হিসাবেআছে
  • ম্যাক ওএস এক্স , ফ্রিবিএসডি এবং নেটবিএসডি --Fএকই প্রভাব সহএকইবিকল্প রয়েছে
  • ওপেনবিএসডি --fযথেষ্ট (যদি ফাইলটি প্রতিস্থাপন করা হয় (যেমন, ইনোড নম্বর পরিবর্তন হয়), লেজ ফাইলটি পুনরায় খোলে এবং চালিয়ে যাবে)
  • সোলারিস - সমতুল্য নয়
  • ব্যজিবক্স --Fসাম্প্রতিক সংস্করণগুলিতে উপলভ্য, তবে অবশ্যই এটি সংকলন করা উচিতENABLE_FEATURE_FANCY_TAIL(এটি পূর্বনির্ধারিতভাবে সংকলিত হয় না)

55

বিকল্প হ'ল tail -Fকমান্ড।

-Fবিকল্প বোঝা --follow=nameসঙ্গে --retryবিকল্প, তাই লেজ আপনার ফাইল দেখছে যদিও তা মুছে ফেলা হয়েছে এবং নির্মিত আবার।


5

যেহেতু আপনি বিকল্প চেয়েছেন :

lessউপযোগ জন্য বিকল্প কিছু হতে পারে tail -F

এটি নিম্নলিখিত হিসাবে চালাতে হবে: less --follow-name filename.logএবং Shift+ টিপুন F

এটি আপনাকে একই ফলাফল দেবে tail -F


ধন্যবাদ। আমি কেবলমাত্র বিকল্পের পরে ছিলাম কারণ আমি লেজ-এফ সম্পর্কে অজ্ঞাত ছিলাম। যদিও বিকল্পগুলি জানতে সর্বদা ভাল good
হিউ

4

আর একটি বিকল্প হ'ল watchকমান্ডটি ব্যবহার করা হবে, যা এই উদাহরণে প্রতি 2 সেকেন্ডে প্রতি n সেকেন্ডে যে কোনও কমান্ড পুনরাবৃত্তি করবে:

watch -n2 "tail tool.log"

লগটি দেখা শেষ করার পরে কমান্ডটি ছাড়তে Ctrl+ ব্যবহার করুন C


1
মনে হচ্ছে এটি লগকে রিফ্রেশ টাইমারের চেয়ে ধীরে ধীরে স্ক্রোল করা হলে অনেকগুলি সদৃশ বার্তা তৈরি করে এবং যদি দ্রুত স্ক্রোল হয় তবে কিছু বার্তা মিস করবে।
ববসন

3
ঘড়ির পুরো স্ক্রিনটি নিয়ে যায় তাই এটি বার্তাগুলির সদৃশ হবে না, তবে এটি পিছনে স্ক্রোল করার ক্ষমতা সরিয়ে ফেলবে।
হিউজ

3

lnav আরেকটি দুর্দান্ত সরঞ্জাম যা ফাইলের নাম অনুসরণ করে।

আপনি এটি একটি ডিরেক্টরিতেও নির্দেশ করতে পারেন এবং এটি সমস্ত ধরণের অন্যান্য ঝরঝরে বৈশিষ্ট্য ছাড়াও ডিরেক্টরিতে সমস্ত ফাইলকে লেজ করবে।


আমি খুঁজে পেয়েছি এটি ছাঁটা এবং / অথবা নাম পরিবর্তন করে ঘোরানো লগগুলি পরিচালনা করে না (আমি নিশ্চিত না যে এটি আমার বিশেষ ক্ষেত্রে এটির বিরক্ত করছে) তাই ল্যাঙ্ক পুনরায় আরম্ভ না করলে লগগুলি মধ্যরাতে থামতে দেখা যায়। আমি কি এর জন্য কিছু স্পষ্ট সুইচ বা কৌশল অনুভব করছি যা আমি অবাক হয়েছি কারণ এটি মনে হয় এটির কিছুটা অগ্রসর হওয়া উচিত?
স্টুয়ার্ট হিকিনবটম

এটি ফাইলটি কেটে ফেলা হয় তার উপর নির্ভর করে depends আপনি -rপতাকাটি ল্যানভিতে পাস করলে এটি ফাইলের নাম পুনরায় লোড করবে (এবং কোনও পূর্বে ঘোরানো লগগুলি লোড করবে)
ওয়েন ওয়ার্নার

1

আমি নিশ্চিত না যে multitailআপনার সুনির্দিষ্ট কেসটি পরিচালনা করবে কিনা তবে আমি বাজি ধরেছি এটি তা করবে। মাল্টিটেল আপনি যা করতে tailচেয়েছিলেন তা করতে পারে।

https://en.wikipedia.org/wiki/MultiTail


1
হ্যাঁ এটি হবে - multitail -f <name1> -f <name2> -f <name3> ...। এই উদাহরণটি এক সাথে বেশ কয়েকটি ফাইল অনুসরণ করে দেখায় যা পৃথক উইন্ডোতে প্রদর্শিত হবে।
স্টুয়ার্ট হিকিনবটম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.