কার্যকারিতার মতো "আপডেট ফাইল" দিয়ে কম


9

আমি এমন একটি ফাইল দেখতে চাই যা প্রতি 5 মিনিটের সাথে ওভাররাইট হয়ে যায় less। পুরানোটিকে প্রদর্শিত না রেখে আমি কীভাবে lessনতুন ফাইল বর্ণনাকারী অনুসরণ করতে পারি ? watch "cat file"এটি করবে না কারণ ফাইলটি একটি টার্মিনাল উইন্ডোতে ফিট করার জন্য অনেক দীর্ঘ।


2
"অনুসরণ করুন" ফাইলের শেষে অনুসরণ করে বোঝায়। আপনি স্পষ্ট করতে চাইতে পারেন যে আপনার ফাইলটি ওভাররাইট হয়ে গেছে এবং আপনি এটি আবার খুলতে আগ্রহী।
ছুটজ

আমি বলতে চাইছি ফাইল বর্ণনাকারী অনুসরণ করা, কারণ এটি tail -fম্যান পৃষ্ঠাতে সংজ্ঞায়িত করা হয়েছে । তবে তবুও আমি আমার প্রশ্নটি পরিষ্কার করে দিয়েছি।
d135-1r43

উত্তর:


10

ফাইলটি দেখার সময় Fকমান্ড ( Shift+F) জারি করে আপনি এই প্রভাবটি পেতে পারেন less। অনুসরণ বন্ধ করতে এবং পেজিংয়ে ফিরে যেতে, টিপুনCtrl+C

যেহেতু আপনার ফাইলটি প্রতি 5 মিনিটে কেবল পরিবর্তন হয় তাই আপনি tail -fদীর্ঘতর ঘুমের সময়টিও ব্যবহার করতে পারেন -s(ডিফল্ট 1 সেকেন্ডে)। এই ক্ষেত্রে,

tail -f -s 60 myfile

myfileপ্রতি 60 সেকেন্ডে আউটপুট পরীক্ষা করে।

সম্পাদনা: বিভ্রান্তিকর প্রশ্নের কারণে উপরের উত্তরটি সন্তোষজনক ছিল না। দ্বিতীয় প্রচেষ্টা অনুসরণ:

lessপ্রতি 5 মিনিটে একই ফাইলটি পুনরায় খোলার জন্য , এটি চেষ্টা করুন:

while true; do ( sh -c 'sleep 600 && kill $PPID' & less myfile ); done

এটি এমন একটি সাবস্কেল তৈরি করবে যা অন্য শেল প্রক্রিয়াটিকে 5 মিনিটের পরে তার পিতামাতার প্রক্রিয়াটি হ্রাস করার নির্দেশ দেয় background তারপরে এটি ফাইলটি ওপেন করে less। যখন ব্যাকগ্রাউন্ড শেল কমান্ড প্যারেন্ট সাবসেলকে হত্যা করে, তখন এটি "কম" কমান্ড সহ সমস্ত শিশুকে হত্যা করে। তারপরে লুপটি আবার প্রক্রিয়া শুরু করে।

এটি মারতে আমি জানার একমাত্র সহজ উপায়টি হ'ল আপনার আসল শেলটি থাকা টার্মিনালটিকে মেরে ফেলা that's যদি এটি অগ্রহণযোগ্য হয় তবে আপনি "কিলফিল" কৌশলটি ব্যবহার করতে পারেন:

touch killfile
while [ -f killfile]; do stuff; done

করা বন্ধ করতে stuff, rmঅন্য শেলের মধ্যে কিলফিল।


এটি আমার ক্ষেত্রে কেবল আংশিকভাবে কার্যকর। দেখা ফাইলটি শীর্ষে আপডেট হওয়া তথ্যগুলি খুব বড়। এটি কোনও "স্ক্রোলিং" লগ ফাইল নয়। শিফট + এফ সঙ্গে সঙ্গেই ফাইলটির শেষের দিকে স্ক্রোল করে ...
d135-1r43

পরিষ্কার করার জন্য আপনার প্রশ্নটি সম্পাদনা করা উচিত। আমিও উত্তরটি দিয়ে আমার উত্তর সম্পাদনা করেছি।
বনসাইভাইকিং

watch -n 1 less <filename>
ax2222

1

আপনি অনুরূপ কিছু করতে পারেন vim

এর একটি সার্ভার সেশন শুরু করুন vim:

vim -R --servername refresh_session

তারপরে অন্য কনসোলে আপডেটের জন্য ফাইলটি নিরীক্ষণ করুন এবং ভিএম সেশনটি ফাইলটি আপডেট হওয়ার সাথে সাথেই পুনরায় লোড করতে বলুন:

inotifywait -e close_write -m your_log_file | while read filename events; do
    vim --servername refresh_session --remote $filename
done

কয়েকটি গোছা।

  • আপনার বৈশিষ্ট্যটি যদি vimসংকলন না করা হয় তবে এটি অবশ্যই কাজ করবে clientserverনা।
  • inoifywaitফাইলটি মোছার পরে কাজ করা বন্ধ করবে। সুতরাং আমি আশা করি আপনার ফাইলটি ওভাররাইট হয়ে গেছে। অবশ্যই এটি প্রায় কাজ করা সম্ভব।

এবং যদি আপনি আরও lessপছন্দসই অভিজ্ঞতা পেতে চান তবে আপনি lessআপনার lessকী বাইন্ডিংগুলি ম্যাক্রোগুলি ব্যবহার করতে পারেন vim

/usr/share/vim/vim73/macros/less.sh --servername refresh_session

0

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

একে "lv" বলা হয় , আপনি এটি ব্যবহার করে উবুন্টুতে এটি ইনস্টল করতে পারেন:

sudo apt install lv

তবে মনে হচ্ছে এটির কোনও স্বয়ংক্রিয় লোড বৈশিষ্ট্য নেই।


-1

আপনি এই আদেশটি চেষ্টা করতে পারেন: টেল -f ফাইল


-1

লেজ আপনার বন্ধু। "লেজু-ফাইল ফাইল নাম" প্রদর্শিত হবে যখন আপনাকে নতুন লাইন দেখাবে।

অথবা আপনি যদি ফাইলটির মাঝামাঝি সময়ে করা পরিবর্তনগুলি সন্ধান করতে চান তবে প্রতি মিনিটে কয়েক মিনিটের মধ্যে কোনও স্ক্রিপ্ট চালিয়ে কোনও অস্থায়ী জায়গায় ফাইলটির অনুলিপি তৈরি করতে এবং তাতে আলাদা করতে চান?


এটি মূল পোস্টেও বেশ স্পষ্ট ছিল যে সেখানে একটি "নতুন ফাইল" রয়েছে। অতএব ফাইল বর্ণনাকারী পরিবর্তিত tail -fহত তবে এখনও এটি পুরানোটি পড়তে পারে।
অ্যালাস্টার ইরভাইন

আমি মনে করি না যে এটি খুব ন্যায্য। স্ফটিক পরিষ্কার হওয়ার জন্য, আমাদের আসল, অশিক্ষিত পোস্টটি দেখতে হবে, কারণ আপনি যদি আমার উত্তরের তারিখটি দেখেন তবে এটাই আমি উত্তর দিচ্ছিলাম। সেই অশিক্ষিত প্রশ্নে আমার উত্তরটি সঠিকভাবে বোঝায়। serverfault.com/posts/445899/revisions
ডেভিড ডব্লিউ

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