اگر متوجه شدید که یک فرمان را بارها و بارها اجرا می کنید، ممکن است راه بهتری وجود داشته باشد.
گاهی اوقات، برای نظارت بر جنبه های مختلف سیستم خود، مانند فرآیندهای در حال انجام، استفاده از فضای دیسک، یا ورود کاربران به سیستم، نیاز به اجرای مکرر یک دستور یا برنامه دارید. دستور تماشای لینوکس به شما این امکان را می دهد که این کارها را بدون نیاز به اجرای دستی بارها و بارها به صورت خودکار انجام دهید.
با استفاده از این دستور، میتوانید فعالیتهای سیستم مانند ورود کاربران، وضعیت شبکه، استفاده از حافظه و CPU، فضای دیسک و غیره را در زمان واقعی نظارت کنید. بیایید نحوه استفاده از دستور watch در لینوکس را ببینیم.
فرمان Watch چیست؟
دستور watch Linux یک فرمان یا برنامه مشخص را به طور مکرر و در فواصل زمانی معین اجرا می کند و خروجی آن را در ترمینال نمایش می دهد. این به شما امکان می دهد تغییرات خروجی را در زمان واقعی مشاهده کنید. در هر بازه خروجی را تازه می کند و خروجی قبلی دستور را بازنویسی می کند. بهطور پیشفرض، این فرمان هر دو ثانیه تکرار میشود و تا زمانی ادامه مییابد که بهطور دستی با استفاده از Ctrl + C آن را متوقف کنید.
Command Syntax را تماشا کنید
سینتکس دستور watch به صورت زیر است:
watch options <command>
گزینه های خط فرمان مختلفی برای استفاده با فرمان ساعت وجود دارد. اگر دستور watch را بدون هیچ گزینه ای اجرا کنید، پس از هر دو ثانیه فرمان مشخص شده را اجرا می کند. به عنوان مثال، موارد زیر خروجی دستور ls را به شما نشان می دهد:
watch ls -l ~/
خروجی تغییرات فهرست دایرکتوری را در صورت ایجاد، حذف یا تغییر اندازه فایل به شما نشان می دهد، در حالی که خروجی را هر دو ثانیه یک بار تازه می کند.
هر X ثانیه یک فرمان را با استفاده از ساعت اجرا کنید
می توانید فاصله به روز رسانی دستور watch را تغییر دهید. این به این معنی است که می توانید به فرمان watch بگویید قبل از تکرار دستور برای x ثانیه صبر کند. برای تغییر فاصله به روز رسانی، از گزینه -n و سپس فاصله زمانی بر حسب ثانیه استفاده کنید.
watch -n
به عنوان مثال، برای اجرای یک دستور بعد از هر 5 ثانیه، اجرا کنید:
watch -n 5 <command>
تغییرات بین بهروزرسانیها را برجسته کنید
فرمان watch خروجی خود را در هر بار تازه سازی بازنویسی می کند. با استفاده از گزینه -d می توانید تغییرات بین خروجی قبلی و به روز شده را نیز برجسته کنید.
watch -d
هدر را در خروجی فرمان ساعت مخفی کنید
بهطور پیشفرض، فرمان watch یک هدر در بالای هر خروجی نشان میدهد که حاوی فاصله بهروزرسانی، نام فرمان و تاریخ و زمان فعلی سیستم است. با استفاده از گزینه -t می توانید هدر را از خروجی حذف کنید:
watch -t <command>
Beeps on Error را پخش کنید
هنگامی که یک فرآیند لینوکس به پایان می رسد، یک کد خروج را برمی گرداند. طبق قرارداد، مقدار 0 در موفقیت و غیر صفر برای نشان دادن یک خطا است. اگر فرمان خروجی غیر صفر برگرداند، گزینه -b فرمان ساعت یک صدای بوق پخش میکند.
فرض کنید می خواهید sshd.service را زیر نظر داشته باشید و هنگامی که سرویس متوقف می شود مطلع شوید. شما استفاده می کنید:
watch -b sudo systemctl status sshd.service
این دستور زمانی که سرویس متوقف می شود صداهای بوق می دهد. هنگامی که سرویس از سر گرفته شود، بوق متوقف می شود. برای آزمایش این، پنجره ترمینال دیگری را باز کرده و سرویس را متوقف کنید. تا زمانی که سرویس را دوباره شروع کنید بوق های دائمی می دهد. اما برای استفاده از این قابلیت باید بسته بوق را روی سیستم خود نصب کرده باشید.
از فرمان ساعت در تغییر خروجی خارج شوید
همچنین میتوانید به فرمان ساعت بگویید که اجرای آن متوقف شود و زمانی که خروجی فرمان تغییر کرد، از آن خارج شوید. با استفاده از گزینه -g می توانید این کار را انجام دهید. این گزینه در سناریوهایی که منتظر تغییرات خاصی در خروجی هستید بسیار مفید است.
هنگامی که خروجی تغییر کرد، فرمان watch متوقف می شود. می توانید این استفاده را با دستور echo ترکیب کنید تا پیامی روی صفحه نمایش داده شود.
به عنوان مثال، سناریویی را در نظر بگیرید که در آن منتظر دریافت فایلی در دایرکتوری خود هستید. دستور زیر دایرکتوری فایل مشخص شده را کنترل می کند. به محض ورود، فرمان watch از کار می افتد و فایل پیام رسیده در ترمینال نشان داده می شود.
watch -g "ls -l | grep filename" && echo "file arrived"
مثال مفید دیگر، اعلان زمانی است که یک کاربر خاص به سیستم شما وارد می شود:
watch -g "who | grep username" && echo "username logged in"
این دستور خروجی فرمان who را که لیست کاربرانی را که وارد سیستم شده اند نظارت می کند. پس از ورود کاربر، دستور watch متوقف می شود و پیامی در ترمینال نمایش داده می شود.
به طور مشابه، میتوانید به فرمان watch بگویید که وقتی برخی تغییرات در یک فایل ایجاد میشود، سرویس را متوقف کند. به خاطر داشته باشید که هنگام استفاده از یک زنجیره خطی از دستورات، باید کل دستور را در داخل نقل قول قرار دهید.
فعالیتها را در سیستم لینوکس خود تماشا کنید
اگر متوجه شدید که به طور مکرر همین فرآیند را انجام می دهید، از دستور watch برای خودکار کردن آن استفاده کنید. این شما را از تایپ مکرر دستورات نجات می دهد تا ببینید چه چیزی تغییر کرده است.
همچنین میتوانید از فرمان watch همراه با سایر دستورات لینوکس برای نظارت بر منابع و فعالیتهای سیستم و ردیابی تغییرات در فایلها یا فهرستها استفاده کنید.