লাইনগুলি না করে কীভাবে কোনও ফাইলের শেষ এন বাইটগুলি লেজ / গ্রেপ / অ্যাগ্রক করবেন


14

আমার একটি অ্যাপ্লিকেশন রয়েছে যা একটি সরল পাঠ্য লগ ফাইলে (myapp.log) লগইন করছে তবে প্রতিটি লগ এন্ট্রি শেষে এটি নতুন লাইন অক্ষরগুলি লিখবে বলে মনে হয় না। যদি আমি কোনও কমান্ড কার্যকর করি তবে আমি tail -n 50 myapp.logশত শত "লাইন" পাঠ্য (লগ এন্ট্রি) পাই।

এই লগ ফাইলটি খুব বড়, মোটামুটি 1 জিবি, শেষ সিআর এবং / বা এলএফ সন্নিবেশ করানো হয়েছিল কে কতক্ষণ আগে জানে। আমি কীভাবে দখল করতে পারি, উদাহরণস্বরূপ সর্বশেষ 2MBs?

উত্তর:


27

-cস্যুইচটি ব্যবহার করে (2 এমবি = 2 * 1024 * 1024 = 2097152 বাইট):

tail -c 2097152 myapp.log

পরামর্শের জন্য পেটর উজেলকে ধন্যবাদ জানাই । কিছু লেজ বাস্তবায়ন শেষ কিলোবাইট (কে) বা মেগাবাইট (এম) মুদ্রণের জন্য একটি ইউনিট যুক্ত করার অনুমতি দেয়, যেমন:

tail -c 2m myapp.log

তবে দয়া করে নোট করুন যে এটি স্ট্যান্ডার্ড নয় (পসিক্স, ইউএনআইএক্স (এসইএস) বা লিনাক্স (এলএসবি) কোনওটি নয় এবং বহনযোগ্য নয়। এছাড়াও লক্ষ করুন যে যেহেতু "মেগা" / "কিলো" শব্দগুলি ... এবং তাদের সংক্ষিপ্ত বিবরণগুলি (এম, কে ...) অস্পষ্ট অর্থ (1000 বনাম 1024) রয়েছে, তাই এই বা এর প্রয়োগের tailঅর্থ কী হবে তার কোনও গ্যারান্টি নেই not 2m(যদিও বর্তমান প্রয়োগসমূহের বর্তমান সংস্করণগুলি এটি সমর্থন করে বলে মনে হয় এটি 1024 বৈকল্পিকের জন্য চলেছে)।


5
লেজটি সি স্যুইচের পক্ষে যুক্তি হিসাবে ইউনিটগুলির সাথে নম্বর গ্রহণ করতে সক্ষম হওয়া উচিত, সুতরাং tail -c 2M myapp.logএটিও কাজ করা উচিত।
পেটর উজেল 15

@ পেটারজেল: ধন্যবাদ এটি যুক্ত করতে উত্তর সম্পাদনা করুন
বিরেই

এখন আমি নির্বোধ অনুভব করছি :) তাত্ক্ষণিকতার জন্য ধন্যবাদ, সত্যিই এটি প্রশংসা করুন। দুর্দান্ত পরামর্শ!
jwbensley

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