در محیطهای لینوکسی، مانیتور کردن و کنترل اجزای سرور یا سیستم یکی از وظایف اساسی مدیران سیستم است. از جمله اقداماتی که نقش مهمی در اداره و بهینه سازی یک سیستم ایفا میکنند شامل مواردی چون، بررسی وضعیت عملکرد سرور، نظارت بر ورودی کاربران، آپتایم سیستم و میانگین لود سرور و ... هستند؛ که میتوان با اجرای خودکار دستورات در لینوکس با فواصل زمانی معین، همه این اقدامات را راحتتر انجام داد. ما در این مقاله، با روشها و ابزارهای مختلفی آشنا خواهیم شد که به مدیران سیستم اجازه میدهد تا فعالیتهای خود را بهبود بخشند، سیستمها را مانیتور کنند و هوشمندانه واکنش نشان دهند و همچنین، نحوه پیادهسازی اجرای خودکار دستورات در لینوکس هر چند ثانیه یک بار را آموزش خواهیم داد. ( خرید سرور مجازی لینوکس ایران )
روشهای اجرای خودکار دستورات در لینوکس هر چند ثانیه یک بار
یک مدیر سیستم در بیشتر اوقات باید یک دستور را بارها در یک بازه زمانی خاص اجرا کند. این کار به راحتی و با استفاده از دستورات ساده cron انجام میپذیرد. اما دستورات cron در هر دقیقه حداکثر فقط یک بار میتوانند اجرا شوند. در بسیاری از موارد این 1 دقیقه خیلی آهسته است و ما به عملکرد بهتر و سرعت بیشتری برای اجرای دستورات نیاز داریم.
برای اجرای خودکار دستورات در لینوکس در بازههای زمانی معین میتوانید از چند روش استفاده کنید. چند روش معمول برای این کار عبارتند از:
- دستور watch
- دستور sleep
در ادامه قصد داریم به بررسی هر یک از این روشها برای اجرای خودکار دستورات در لینوکس بپردازیم.
بیشتر بدانید:
اجرای خودکار دستورات در لینوکس با دستور watch
از دستور watch در لینوکس برای نمایش خروجی یک دستور به صورت دورهای و مکرر استفاده میشود. با استفاده از watch خروجی یک دستور به صورت زنده نمایش داده میشود و در بازههای زمانی مشخص شده، تکرار میشود. به بیانی دیگر، شما میتوانید خروجی برنامه را در همان لحظه تماشا کنید.
به طور پیشفرض زمان اجرای دستور هر 2 ثانیه یک بار است. این فاصله را میتوان به صورت دلخواه تغییر داده و بازه زمانی مورد نظر خود را وارد کنید.
نظارت بر استفاده از حافظه
برای اجرای خودکار دستورات در لینوکس هر چند ثانیه یک بار، با نظارت بر استفاده از حافظه، میتوان از دستور watch به همراه دستور free استفاده کرد. دستور free اطلاعات مربوط به حافظه را نمایش میدهد. برای این کار، دستور زیر را در ترمینال لینوکس تایپ کنید:
watch free
در دستور بالا، free هر 2 ثانیه یک بار اجرا میشود و اطلاعات به صورت زنده نمایش داده میشود. اطلاعاتی که شامل مصرف حافظه، حافظه آزاد و دیگر مقادیر مربوط به حافظه سیستم میباشد.
در دستوری که در زیر آمده، از دستور watch و free به همراه گزینه -m استفاده شده است. این گزینه باعث میشود که دستور free اطلاعات را به مگابایت (MB) نمایش دهد.
watch free –m
این دستور نیز مانند دستور بالا، باعث میشود که free هر 2 ثانیه اجرا شود و اطلاعات مربوط به حافظه را با واحد مگابایت نمایش دهد. با این دستور اندازهگیری مصرف حافظه، با دقت بالاتری انجام میشود، مخصوصا زمانی که نیاز به نظارت بر مقادیر بزرگی در بازههای زمانی کوتاه دارید.
حال میخواهیم بدانیم که چطور میتوانیم زمان اجرای خودکار دستورات در لینوکس را تغییر دهیم. مثلا اگر بخواهیم دستور به جای 2 ثانیه، هر 10 ثانیه یک بار اجرا شود، باید از دستور زیر استفاده کنیم.
watch -n 10 free –m
این دستور علاوه بر نمایش اطلاعات مصرف حافظه به واحد مگابایت، باعث میشود که دستور free هر 10 ثانیه یک بار اجرا شود. شما میتوانید عدد 10 که در دستور بالا آورده شده را براساس نیاز خود، به مقدار دلخواه تغییر دهید.
به عنوان مثال، فرض کنید میخواهید فایل script.sh را هر 12 ثانیه اجرا کنید. میتوانید برای انجام این کار دستور زیر را اجرا کنید.
watch -n 12 script.sh
دقت داشته باشید که برای اجرای دستور بالا ابتدا باید با استفاده از دستور cd به همان دایرکتوری که script.sh در آن قرار دارد رفته و سپس این دستور را اجرا کنید.
برخی گزینههای کاربردی از دستور watch عبارتند از:
- (beep) b-این گزینه این امکان را به شما میدهد که هر زمان که خروجی دستور تغییر کند، یک صدای بیپ شنیده شود تا به کاربر اطلاع دهد که مقدار خروجی تغییر کرده است.
- (no-title) t-این گزینه عنوانی که در بالای خروجی نمایش داده میشود را حذف میکند و فقط خروجی دستور را نشان میدهد.
- (differences) d-با استفاده از این گزینه میتوانید تفاوتها بین خروجیهای متوالی را مشاهده کنید.
- (precise) p-با استفاده از این گزینه از تفاوتها یه صورت مفصلتری نمایش داده میشود و از تغییرات دقیقتری در خروجی برخوردار خواهید شد.
- (interval) n-این گزینه به مدت زمان بین هر اجرای مکرر یک دستور اشاره دارد. به عبارتی دیگر، این گزینه یک فاصله زمانی است که بعد از هر اجرا، دستور دوباره تکرار میشود.
- (color) c-با استفاده از این گزینه میتوانید از رنگها در خروجی دستورات استفاده کنید تا خروجی را بهتر قابل مشاهده کند.
نظارت بر کنترل ورودی کاربران و وضعیت سرور
اطلاعات کاربران، آپتایم (uptime) و میانگین لود سرور(load average)، مواردی هستند که توسط دستورات مختلف در لینوکس ، قابل نظارت هستند. از این اطلاعات میتوانید برای تکرار اجرای دستورات در بازههای زمانی مورد نظر استفاده کنید.
آپتایم و میانگین لود
از آپتایم و میانگین لود، برای ارزیابی عملکرد سیستم، شناسایی افزایش ترافیک و زمانبندی تعمیرات استفاده میشود. برای نظارت بر آپتایم و میانگین لود سرور میتوانید از دستور watch به همراه دستور uptime استفاده کنید.
watch free –m
این دستور، میانگین لود سرور در بازههای زمانی مشخص را نمایش میدهد. همچنین دستور uptime به صورت پیشفرض اطلاعات هر 10 ثانیه یک بار به روز میکند. اما اگر بخواهید در بازه زمانی مورد نظر خود، دستور را تکرار کنید میتوانید از دستور زیر استفاده کنید.
watch -n 5 uptime
در دستور بالا، uptime هر 5 ثانیه تکرار میشود.
کنترل ورودی کاربران
برای کنترل ورودی کاربران و نظارت بر آنها میتوانید از دستوراتی مانند who استفاده کنید تا لیست کاربران فعال و وضعیت آنها را بررسی کنید.
watch who
این دستور لیست کاربران وارد شده و وضعیت آنها را به صورت لحظهای نشان میدهد. دستور who نیز مانند دستور uptime به صورت پیشفرض اطلاعات را هر 10 ثانیه به روز میکند. برای تعیین زمان دلخواه میتوانید مشابه دستور uptime عمل کنید.
watch -n 5 who
نظارت بر جزئیات دستور کپی
در لینوکس، برای کپی کردن فایل از یک دایرکتوری به دایرکتوری دیگر از دستور cp استفاده میشود. اما این دستور، پیشرفت دادهها را نمایش نمیدهد. برای دستیابی و مشاهده این اطلاعات میتوانید از دستور watch به همراه فرمان du -s استفاده کنید.
cp source_file /destination/path/ &
watch -n 0.1 du -s /destination/path/source_file
در دستور بالا، source_file نام فایلی است که میخواهید کپی کنید، /destination/path/ مسیر مقصدی است که میخواهید فایل را در آن کپی کنید، & برای اجرای دستور در پسزمینه است و watch -n 0.1 du -s /destination/path/source_file برای نظارت لحظهای بر میزان مصرف فضای دیسک توسط فایل در حال کپی شدن است.
همانند دستورات قبلی برای تعیین زمان دلخواه برای به روز کردن این دستور نیز میتوانید مانند دستور زیر عمل کنید.
cp source_file /destination/path/ &
watch -n 5 du -s /destination/path/source_file
این دستور هر 5 ثانیه یک بار اجرا میشود.
برای خروج از دستور watch میتوانید کلیدهای Ctrl + C را فشار دهید.
بدون دیدگاه