دستور tail در لینوکس همراه با مثال‌های کاربردی

دستور tail در لینوکس

دستور tail در لینوکس و یونیکس برای نمایش انتهای یک فایل متنی به کار می‌رود. به طور پیش‌فرض، این دستور آخرین 10 خط از یک فایل را نمایش می‌دهد. همچنین می‌توان از این دستور برای مشاهده لاگ‌های زنده و پایش تغییرات فایل‌ها استفاده کرد.

معمولا بیشترین استفاده ازدستور tail در لینوکس برای بررسی فرآیندها و سرویس‌ها در لینوکس است. در اینجا چند مثال از نحوه استفاده از دستور tail و توضیح هر یک را ارائه می‌دهم.

کاربرد دستور tail در لینوکس همراه با 10 مثال کاربردی

سینتکس پایه دستور tail در لینوکس:

tail [OPTION]… [FILE]…

OPTION: گزینه‌های مختلف برای تنظیمات نمایش.
FILE: نام فایل یا فایل‌هایی که می‌خواهید انتهای آن‌ها را مشاهده کنید.

نمایش آخرین 10 خط از یک فایل (سینتکس پایه):

tail /var/log/syslog

این دستور آخرین 10 خط از فایل لاگ سیستم /var/log/syslog را نمایش می‌دهد. اگر تعداد خط‌ها مشخص نشود، به طور پیش‌فرض 10 خط انتهایی نمایش داده می‌شود.

نمایش تعداد خاصی از خط‌ها:

tail -n 20 /var/log/syslog

این دستور آخرین 20 خط از فایل لاگ را نمایش می‌دهد. گزینه -n برای تعیین تعداد خط‌های نمایش داده شده به کار می‌رود.

مشاهده فایل به صورت زنده (Live Monitoring):

tail -f /var/log/syslog

این دستور محتویات فایل را به صورت زنده نشان می‌دهد. یعنی اگر فایل تغییر کند (مثل وقتی که لاگ جدیدی به آن اضافه شود)، این تغییرات بلافاصله نمایش داده می‌شود. این قابلیت برای مشاهده لاگ‌های سیستم در لحظه مفید است.

ترکیب مشاهده زنده با تعداد مشخصی از خط‌ها:

tail -n 30 -f /var/log/syslog

این دستور ابتدا آخرین 30 خط از فایل را نمایش می‌دهد و سپس شروع به مشاهده تغییرات زنده فایل می‌کند. این ترکیب معمولاً برای پایش لاگ‌های طولانی مورد استفاده قرار می‌گیرد.

دنبال کردن تغییرات فایل پس از رشد:

tail –retry -f /var/log/syslog

گزینه –retry باعث می‌شود که حتی اگر فایل لاگ به طور موقت در دسترس نباشد (به دلیل جابجایی یا حذف و ایجاد دوباره)، tail تلاش کند فایل را دوباره باز کند و دنبال کند. این برای فایل‌هایی که ممکن است توسط سیستم چرخشی لاگ (log rotation) جابجا شوند، مفید است.

نمایش بایت‌ها به جای خطوط:

tail -c 50 /var/log/syslog

این دستور آخرین 50 بایت از فایل را نمایش می‌دهد. گزینه -c برای نمایش فایل بر حسب تعداد بایت به کار می‌رود.

استفاده از چند فایل همزمان:

tail -f /var/log/syslog /var/log/dmesg

این دستور به طور همزمان تغییرات زنده دو فایل لاگ را نمایش می‌دهد. از این قابلیت دستور tail در لینوکس میتوانید برای نظارت بر چند فایل لاگ به طور همزمان استفاده کنید.

نمایش همه خطوط از یک نقطه خاص به بعد:

tail -n +100 /var/log/syslog

این دستور از خط 100 به بعد تمام خطوط فایل را نمایش می‌دهد. وقتی عدد مثبت همراه با + استفاده می‌شود، از آن خط به بعد نمایش داده می‌شود.

ترکیب tail با سایر دستورات:

می‌توانید خروجی دستور tail را به سایر دستورات ارسال کنید. مثلاً با grep می‌توانید به دنبال متن خاصی در خروجی بگردید.

tail -f /var/log/syslog | grep “error”

این دستور تغییرات زنده فایل لاگ را پایش می‌کند و فقط خطوطی را که شامل کلمه “error” هستند نمایش می‌دهد.

ذخیره خروجی tail در یک فایل دیگر:

می‌توانید خروجی tail را در یک فایل دیگر ذخیره کنید.

tail -n 50 /var/log/syslog > last-50-lines.txt

این دستور آخرین 50 خط فایل لاگ را در فایل last-50-lines.txt ذخیره می‌کند.

دستور tail در لینوکس ابزاری قدرتمند برای مدیریت و مشاهده سریع فایل‌های متنی، به خصوص لاگ‌ها است. با استفاده از گزینه‌های مختلف مانند -n (تعداد خطوط)، -f (مشاهده زنده)، و -c (نمایش بر اساس بایت)، شما می‌توانید اطلاعات مورد نظر خود را از فایل‌ها به راحتی استخراج کنید.

مشاهده تلاش برای ورود به سیستم توسط کاربران دیگر

اگر بخواهیم یک مثال کاربردی از استفاده از دستور tail در لینوکس برای شما بزنیم می‌توان گفت یکی از کاربردهای دستور tail در لینوکس برای مشاهده تلاش‌های لاگین به سیستم در لحظه است که می‌توانید فایل‌های لاگ مربوط به احراز هویت را مانیتور کنید. در سیستم‌های مبتنی بر لینوکس تلاش‌های ورود به سیستم معمولاً در فایل‌های لاگ زیر ذخیره می‌شوند:

/var/log/auth.log (در برخی توزیع‌ها مثل Ubuntu و Debian)
/var/log/secure (در توزیع‌های RHEL-based مثل CentOS، Rocky Linux)

برای مانیتور کردن این لاگ‌ها در لحظه و مشاهده تلاش‌های لاگین به سیستم، می‌توانید از دستور tail به همراه گزینه -f برای مانیتور زنده استفاده کنید.

مثالا اگر شما از توزیع rocky linux استفاده می‌کنید که مبتنی بر RHEL است، فایل مربوطه احتمالاً /var/log/secure خواهد بود.

tail -f /var/log/secure

این دستور لاگ‌های مرتبط با احراز هویت را در لحظه نمایش می‌دهد و شما می‌توانید تمام تلاش‌های لاگین (چه موفق و چه ناموفق) را مشاهده کنید.

فیلتر کردن خروجی با استفاده از دستور grep:
اگر بخواهید فقط لاگ‌های مربوط به تلاش برای ورود به سیستم (به عنوان مثال Failed یا Accepted) را ببینید، می‌توانید از دستور زیر استفاده کنید:

مشاهده تلاش‌های ناموفق:

tail -f /var/log/secure | grep “Failed”

مشاهده تلاش‌های موفق:

tail -f /var/log/secure | grep “Accepted”

برای مطالعه بیشتر درباره دستور tail در لینوکس میتوانید این مقاله را هم بررسی کنید.