سلام،
بعد از مدتها دوباره مطلبی در مورد برنامههای مفید موجود در لینوکس (و یونیکس) آماده کردم. در این مطلب به معرفی دستورات head، tail و نرمافزار MultiTail که برای نظارت (مونیتورینگ) دستورات و فایلها به کار گرفته می شوند، پرداخته ام.
دستور head
این دستور برای بدست آوردن اطلاعات ابتدایی (خطوط) بالایی فایل و خروجی های پایپ شده کاربرد دارد. دستور head به صورت پیش فرض ۱۰ خط از اطلاعات را نمایش می دهد. نحوه استفاده از این دستور به صورت زیر است:
head [options] <file_name>
و یا:
command | head
مانند:
ls -tl | head -n5 total 72 drwxr-xr-x+ 12 saeid staff 408 Jan 15 21:22 Desktop drwx------+ 9 saeid staff 306 Jan 15 11:23 Downloads drwx------@ 59 saeid staff 2006 Jan 11 23:05 Library drwxr--r--+ 23 saeid staff 782 Jan 4 18:52 Documents
دستور tail
این دستور کاملا شبیه به دستور head است با این تفاوت که به جای خطوط ابتدایی، اطلاعات خطوط انتهایی را نمایش می دهد. مانند:
man ls | tail -n15 SEE ALSO chflags(1), chmod(1), sort(1), xterm(1), compat(5), termcap(5), symlink(7), sticky(8) STANDARDS The ls utility conforms to IEEE Std 1003.1-2001 (``POSIX.1''). HISTORY An ls command appeared in Version 1 AT&T UNIX. BUGS To maintain backward compatibility, the relationships between the many options are quite complex. BSD May 19, 2002 BSD
پارامتر -f
دستور tail
پارامتر -f
دستور tail باعث می شود که این دستور به صورت زنده (live) باقی مانده و اطلاعات اضافه شده به فایل را در لحظه نشان دهد. این پارامتر بیشتر در بررسی فایل های لاگ استفاده میشود. مانند:
tail -f -n5 /var/log/apache2/access_log 127.0.0.1 - - [15/Jan/2012:22:30:12 +0330] "GET /~saeid/ HTTP/1.1" 200 - 127.0.0.1 - - [15/Jan/2012:22:30:27 +0330] "GET /~saeid/phpinfo.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2524 127.0.0.1 - - [15/Jan/2012:22:30:26 +0330] "GET /~saeid/phpinfo HTTP/1.1" 200 78141 127.0.0.1 - - [15/Jan/2012:22:31:11 +0330] "GET /~saeid/phpinfo HTTP/1.1" 200 78412 127.0.0.1 - - [15/Jan/2012:22:31:11 +0330] "GET /~saeid/phpinfo.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2524 127.0.0.1 - - [15/Jan/2012:22:31:11 +0330] "GET /~saeid/phpinfo.php?=SUHO8567F54-D428-14d2-A769-00DA302A5F18 HTTP/1.1" 200 2813
* برای خروج از tail -f
از ترکیب Ctrl+C استفاده نمایید.
نرمافزار MultiTail
این بسته نرمافزاری در محیط خط فرمان اجرا شده و به منظور نظارت دستورات و فایلها مورد استفاده قرار می گیرد. مهمترین مزیت MultiTail امکان بررسی همزمان چند فایل و دستور در یک ترمینال است.
نصب MultiTail
برای نصب در اوبونتو/دبیان دستورات زیر را در خط فرمان اجرا نمایید:
sudo apt-get update; sudo apt-get install multitail
برای نصب در مک با استفاده از MacPorts دستور زیر را وارد نمایید:
sudo port install multitail
نحوه استفاده از MultiTail
برنامه MultiTail بسیار انعطافپذیر بوده و قابلیتهای بسیاری دارد. به عنوان دستور زیر را در نظر بگیرید:
multitail -l 'ping google.com' -l 'ping zebardast.ir'
تصویر زیر خروجی این دستور را نشان می دهد:
* برای خروج از MultiTail از ترکیب Ctrl+C استفاده نمایید.
حال در کنار این دو Ping یک فایل را نیز به صورت زنده (live) بررسی می کنیم:
multitail -l 'ping google.com' -l 'ping zebardast.ir' /var/log/apache2/access_log
همچنین می توانیم به جای نمایش جدا از هم اطلاعات، آنها را ترکیب کرده و با هم نمایش دهیم. در زیر خروجی دو دستور پینگ را در یک ترمینال نشان داده ایم:
multitail -l 'ping google.com' -L 'ping zebardast.ir' PING zebardast.ir (79.175.162.75): 56 data bytes PING google.com (173.194.69.105): 56 data bytes 64 bytes from 79.175.162.75: icmp_seq=0 ttl=54 time=87.961 ms 64 bytes from 173.194.69.105: icmp_seq=0 ttl=41 time=456.322 ms 64 bytes from 79.175.162.75: icmp_seq=1 ttl=54 time=97.724 ms 64 bytes from 173.194.69.105: icmp_seq=1 ttl=41 time=416.464 ms 64 bytes from 79.175.162.75: icmp_seq=2 ttl=54 time=96.657 ms
از جمله ویژگیهای MultiTail امکان فیلتر کردن نتایج است. دستور زیر همانند دستور قبلی می باشد با این تفاوت که عبارت 64 bytes from
را از خروجی دستور دوم حذف می کند:
multitail -l 'ping google.com' -ke "64 bytes from" -L 'ping zebardast.ir' PING google.com (173.194.69.105): 56 data bytes PING zebardast.ir (79.175.162.75): 56 data bytes 64 bytes from 173.194.69.105: icmp_seq=0 ttl=41 time=463.806 ms 79.175.162.75: icmp_seq=0 ttl=54 time=45.223 ms 64 bytes from 173.194.69.105: icmp_seq=1 ttl=41 time=442.254 ms 79.175.162.75: icmp_seq=1 ttl=54 time=84.238 ms 64 bytes from 173.194.69.105: icmp_seq=2 ttl=41 time=442.263 ms 79.175.162.75: icmp_seq=2 ttl=54 time=98.428 ms 64 bytes from 173.194.69.105: icmp_seq=3 ttl=41 time=400.113 ms 79.175.162.75: icmp_seq=3 ttl=54 time=81.723 ms
پیشنهاد میکنم برای مشاهده مثالهای بیشتر به صفحه Example سایت MultiTail مراجعه کنید.
پیوندها
شاد و پیروز باشید