آموزش لینوکس

در این وبلاگ مطالبی در خصوص سیستم عامل لینوکس به اشتراک گذاشته می شود.

آموزش لینوکس

در این وبلاگ مطالبی در خصوص سیستم عامل لینوکس به اشتراک گذاشته می شود.

دستور watch (اجرای مکرر یک دستور)

دوشنبه, ۱۷ تیر ۱۳۹۸، ۰۳:۴۳ ب.ظ

برای اجرای مکرر یک دستور، از این ابزار استفاده می شود. مکانیزم ابزار watch  به این صورت است که ، دستور دریافتی را در فاصله زمانی معین اجرا کرده و نتیجه را در خروجی نمایش می دهد. ابزار watch  بخشی از بسته نرم افزاری procps-ng یا procps می‌باشد که این بسته بصورت پیش‌فرض، بر روی اکثر توزیع‌های لینوکس نصب می گردد.

با بیان چند مثال به بررسی این ابزار می پردازیم. (علامت $ در ابتدای دستورات، بیانگر اجرای دستور توسط کاربر معمولی می باشد)

مثال 1

& اجرای مکرر دستور free ، توسط ابزار watch 

$ watch free -m 

Every 2.0s: free -m                   Sun Jun 30 15:43:56 2019


             total      used     free   shared    buff/cache    available

Mem:    7941     1342      2560       43        4038            6229

Swap:        8189           1           8188

شرح دستور : با اجرای دستور watch ، محتوای کنونی ترمینال جای خود را به خروجی دستور free -m می دهد. دستور free -m ، وضعیت حافظه سیستم را برحسب مگابایت نمایش می دهد.

در سمت چپ بالای صفحه، فاصله زمانی به روز رسانی و دستور اجرا شده مشخص می باشد. همچنین زمان و تاریخ فعلی سیستم، در سمت راست بالای صفحه قابل رویت است.

استفاده ساده و بدون سوییچ دستور watch بمانند مثال بالا، سبب اجرای دستور دریافتی در هر دو ثانیه می شود.

با کلیدهای Ctrl+c ، اجرای دستور watch ، پایان می یابد.

 

مثال 2

& تعیین فاصله زمانی مابین هر اجرای دستور دریافتی، توسط ابزار watch 

$ watch -n 10 free -m

Every 10.0s: free -m                          Mon Jul  1 12:35:55 2019


             total      used      free     shared  buff/cache      available

Mem:   7941      1363      2318      43               4260       6193

Swap:          8189           1        8188

شرح دستور : برای تعیین فاصله زمانی میان هر اجرا، از سوییچ n استفاده می شود. در این مثال اجرای دستور free -m هر 10 ثانیه یکبار می باشد.

 

مثال 3

& حذف عنوان یا Header ، در زمان اجرای دستور watch 

$ watch -t free -m

                    total        used        free       shared  buff/cache       available

Mem:           7941        1365        2314          43        4262               6191

Swap:          8189           1        8188

شرح دستور : سوییچ t ، سبب حذف Header در خروجی می شود.

& با دستور زیر می‌توان یک ساعت ساده در خروجی ایجاد نمود.

$ watch -n 1 -t date +%H%M%S

 

مثال 4

& مشخص نمودن (Highlight) تغییرات خروجی، در اجرای ابزار watch

$ watch -d free -m

Every 2.0s: free -m                                     Sun Jul  7 23:14:18 2019

 

                     total        used        free            shared  buff/cache   available

Mem:           7941         911        5660            37          1369          6682

Swap:          8189           0        8189

شرح دستور : همانطور که بیان شد، ابزار watch پشت سر هم دستور دریافتی را اجرا کرده و خروجی را بر می گرداند. برای نمایش تغییرات خروجی فعلی با خروجی قبلی، از سوییچ d استفاده می شود.

 

مثال 5

& اتمام خودکار اجرای ابزار watch ، در صورت تغییر خروجی دستور دریافتی

$ watch -g free -m

شرح دستور : استفاده از سوییچ g سبب می گردد که در صورت تغییر مقادیر خروجی دستور free -m ، اجرای دستور watch بصورت اتومات خاتمه یابد.

 

مثال 6

& استفاده از " یا ' (Single or Double Quotes) توسط ابزار watch

    * چنانچه دستور ارسالی دارای | یا همان Pipe باشد، باید از " یا ' استفاده شود.

$ watch "ps aux | sort -nrk 3,3 | head -n 5"

Every 2.0s: ps aux | sort -nrk 3,3 | head -n 5          Sun Jul  7 23:38:16 2019

 

masih     2271  10.9   6184   3389  ?      Rl    20:11  22:31  /opt/libreoffic

root        1216    5.3    6085   9049  tty1 Rsl+ 19:55 12:00  /usr/libexec/Xo

masih     1712   1.4    1863   1709  ?      Sl     19:56 3:11    cinnamon --repl

root         2006   0.9     0            0    ?      D      20:07 2:01    [kworker/u8:2]

root         2944   0.4     0            0    ?      D      22:44 0:15    [kworker/u8:1]

شرح دستور : دستور ps ، ابزاری برای نمایش فرایندهای در حال اجرا می باشد. در بالا با استفاده از ترکیب دستورات ، خروجی شامل پنج فرایندی می باشد که بیشترین توان CPU را بکار گرفته‌اند.

     ارسال چند دستور به ابزار watch

$ watch "echo Uptime : ; uptime;echo '*****' ; echo Memory Status : ; free -m ; echo '*****' ; echo Hard Status : ; df -h"

Every 2.0s: echo Uptime :;uptime;echo '*****';...   Sun Jul  7 23:56:24 2019

 

Uptime :

 23:56:24 up  4:01,  1 user,  load average: 0.17, 0.22, 0.25

*****

Memory Status :

              total        used        free       shared  buff/cache   available

Mem:           7941         915        5648          37        1378     6678

Swap:          8189           0        8189

*****

Hard Status :

Filesystem     Size  Used Avail Use% Mounted on

devtmpfs        3.9G     0  3.9G   0% /dev

tmpfs           3.9G  8.0K  3.9G   1% /dev/shm

tmpfs           3.9G  1.7M  3.9G   1% /run

tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup

/dev/sda3       147G  6.8G  133G   5% /

tmpfs           3.9G  144K  3.9G   1% /tmp

/dev/sda1       976M  187M  723M  21% /boot

/dev/sda2       393G   65G  309G  18% /home

tmpfs           795M   40K  795M   1% /run/user/1000

شرح دستور : در مثال بالا ابتدا عبارت Uptime : نمایش داده می شود و با اجرای دستور uptime ، مدت زمان روشن بودن سرور نمایش می یابد. سپس عبارت ***** در خروجی قرار می گیرد. و همینطور سایر دستورات اجرا شده و نتایج در خروجی قرار می گیرد.


۹۸/۰۴/۱۷
عیسی اسداله پور

نظرات  (۱)

۰۴ اسفند ۹۹ ، ۱۸:۰۴ ‌‌‌ ‌‌‌

جالب بود. (:

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی