گاهی لازم است که خروجی یک دستور را در بازههای زمانی کوتاه بررسی کنید. مثلا زمانی که بخواهید تغییرات یک دایرکتوری را لحظه به لحظه زیر نظر داشته باشید، یا وضعیت یک سرویس را به صورت مداوم رصد کنید. در چنین شرایطی استفاده از cron
که معمولا برای زمانبندیهای بلندمدت مانند هفتگی یا روزانه است، مناسب نیست. در Bash برای تکرار یک دستور در بازههای زمانی هر چند ثانیه یک بار، دستور watch
در نظر گرفته شده است.
شما میتوانید خروجی این دستور را به صورت زنده مشاهده کنید و یا به کمک pipe کردن خروجی دستور تکرار شونده به tee
، آن را در فایلی ذخیره کنید.
سادهترین حالت استفاده از watch
به این شکل است:
watch -n 1 ls -lrth
دستور بالا، هر یک ثانیه یک بار لیست فایلها را به ترتیب آخرین تغییر نمایش میدهد. بنابراین در صورت افزودن یا حذف فایلی، تغییرات بلافاصله در انتهای لیست قابل مشاهده خواهد بود.
ذخیره خروجی در فایل
watch -n 1 "ls -lrth | tee -a list.txt"
در این حالت، خروجی علاوه بر نمایش در ترمینال، در فایل list.txt
نیز ذخیره میشود.
پارامترهای پرکاربرد
-n عدد
: تعیین فاصله زمانی بین هر اجرا به ثانیه را مشخص میکند (پیش فرض: ۲ ثانیه).-d
: برای هایلایت شدن تغییرات به وجود آمده در هر اجرا نسبت به اجرای قبلی میتوان از این پارامتر استفاده کرد.-b
: میتوان با این پارامتر در صورتی که دستور اجرا شده با خطا پایان یابد، صدای بیپ پخش کرد.-g
: یکی دیگر از آپشنهای جذاب این دستور است که اگر خروجی دستور تغییر کرد تکرار را متوقف کند.-e
: در صورتی که از این کامند در یک اسکریپت استفاده کنید و بخواهید در صورت خطا تکرار متوقف شود، میتوانید از پارامتر-e
استفاده کنید. در این صورت کد خطای خروجی خود دستورwatch
برابر4
خواهد بود.
امیدوارم این ابزار برایتان کاربردی و مفید باشد.
منبع تصویر بالای صفحه: Unsplash
دیدگاهتان را بنویسید