ترفند گنو/لینوکس

کار با لاگ‌های فشرده شده در رزبری‌پای با دستورات Z

نوشته شده توسط اروند طباطبایی

log-Linux

 

خلاصه: در این خودآموز خواهیم آموخت چگونه پرونده‌های gzip شده را در یک رزبری پای بخوانیم. توجه داشته باشید که این دستورات فقط مختص به رزبری پای نیستند و باید بر روی سایر دستگاه‌های لینوکسی نیز کار کنند.

 

چگونه پرونده‌های لاگ فشرده شده را در خط فرمان لینوکس بخوانیم

 

اگر با لاگ‌های بک اند کار کرده باشید، حتما متوجه شده اید که تعداد زیادی از آنها با پسوند .gzip فشرده شده اند. این غیر معمول نیست. چرا که فشرده سازی لاگ ها میتواند مقدار زیادی حجم حجم ذخیره سازی و در نتیجه هزینه حجم ذخیره سازی را کاهش دهد.

 

اما پرونده‌های فشرده شده برخلاف پرونده‌های متنی معمول که میتوان از cat برای دیدن تمامی محتوای پرونده و یا از grep برای یافتن قسمتی از متن آن و … استفاده کرد استفاده کرد، محتوای مورد نظرشان قابل خوانده شدن با این ابزار‌های معمول نیست.

 

اما نگران نباشید، وقتی که پرونده‌های gzip شده دارید، قدرت دستورات Z را نیز برای کارکردن با آنها دارید.

 

این دستورات Z معادل Z ای ای برای دستورات معمول کار با پرونده‌های متنی فراهم می آورند.

 

بنابراین داریم:

 

  • zcat: معادل cat برای نمایش پرونده‌های فشرده شده
  • zgrep: معادل grep برای جستجو درون پرونده‌های فشرده شده.
  • zless, zmore: معادل less و more برای نمایش پرونده به صورت صفحه شده.
  • zdiff: معادل diff برای دیدن تفاوت میان دو پرونده فشرده شده.

 

بهترین چیز درباره دستورات Z این است که نیازی نیست پرونده ها را از حالت فشرده شده خارج کنید. دستورات Z مستقیما بر روی پرونده‌های فشرده کار میکنند.

 

نمایش پرونده‌های فشرده شده با معادل cat در مجموعه دستورات Z

 

zcat را در یک دستور با cat جایگزین کنید. zcat دقیقا مانند cat عمل میکند. مثلا:

 

zcat logfile.gz

 

این تمامی محتوای logfile.gz  را بدون استخراج آن نشان میدهد. خب! در واقع از جهاتی محتوا را به صورت موقتی در  /tmp استخراج میکند ولی این که با استخراج دستی و دائم یکی نیست. هست؟

 

میتوان از دستورات معمول less و more برای نمایش خروجی به صورت صفحه بندی شده همراه با zcat استفاده کرد:

zcat logfile.gz | less
zcat logfile.gz | more

 

اگر نمیدانید که پرونده فشرده شده است یا نه(مثلا برای پرونده‌های بدون پسوند)، میتوانید از zcat با -f استفاده کنید. این محتوای پرونده را چه فشرده شده باشد چه نه، نمایش میدهد:

 

zcat -f logfile.gz

 

خواندن پرونده‌های فشرده شده با zless و zmore

 

درست همانند less و more میتوانید از zless و zmore نیز برای خواندن محتویات پرونده‌های فشرده شده بدون خارج کردن آنها از حالت فشرده شده استفاده کنید. تمامی کلید‌های ترکیبی  less و more در معادل‌‌های z ای آنها نیز به صورت یکسان کار میکند.

 

zless logfile.gz
zmore logfile.gz

 

جستجو درون لاگ‌های فشرده با zgrep

 

فکر میکنم دستور بسیار قدرتمند grep یکی از پرکاربرد ترین دستورات در لینوکس باشد. zgrep معادل grep در مجموعه دستورات Z است. که به شما این اجازه را میدهد که درون لاگ‌های فشرده شده جستجو کنید و همانطور که میدانید، همه این ها بدون نیاز به خارج کردن آن ها از حالت فشرده.

 

میتوانید از تمامی آپشن های معمول grep به همراه zgrep نیز استفاده کنید. برای مثال:

 

zgrep -i keyword_search logfile.gz

 

مقایسه پرونده‌های فشرده شده با zdiff

 

هرچند که این ممکن است برای کار با پرونده‌های لاگ بزرگ زیاد به کار نیاید، اما میتوانید دستور zdiff را برای مشاهده تفاوت میان پرونده‌های فشرده به کار ببرید:

 

zdiff logfile1.gz logfile2.gz

 

ترفند‌های بیشتر؟

 

این ها تعدادی از دستورات خط فرمانی بود که ما برای کار با لاگ‌های فشرده از آن ها استفاده میکنیم. شما چطور؟ دستور و یا ترفندی در این رابطه میشناسید که بخواهید با ما به اشتراک بگذارید؟

درباره نویسنده

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه