之前有同事希望在终端下开多个窗口查看服务状态,后来用xterm解决。
multitail可以很好的实现该功能,示例如下:
multitail --label "baidu.com: " -l 'ping baidu.com' --label "sina.com: " -l 'ping sina.com' --label "taobao.com: " -l "ping taobao.com" --label "sohu.com: " -l "ping sohu.com" --label "syslog: " /var/log/syslog -l "vmstat 1" -sw 100,100 -sn 3,3
-sw 用来设置有多少列,每列的大小
-sn 配合-sw/-s使用,设置每列的窗口数
-C 放在multitail后面,输出颜色
进入后,按h帮助,大写O清屏,更多功能大家自己发掘把,比如:只显示差异
安装使用yum或者apt, apt-get install multitail
更多例子:
Merge 2 logfiles in one window: multitail /var/log/apache/access.log -I /var/log/apache/error.log Show 3 logfiles in 2 columns: multitail -s 2 /var/log/apache/access.log /var/log/messages /var/log/mail.log Show 5 logfiles while merging 2 and put them in 2 columns with only one in the left column: multitail -s 2 -sn 1,3 /var/log/apache/access.log -I /var/log/apache/error.log /var/log/messages /var/log/mail.log /var/log/syslog Merge the output of 2 ping commands while removing "64 bytes received from" from only 1 of them: multitail -l "ping 192.168.0.1" -ke "64 bytes from" -L "ping 192.168.0.2" Show the output of a ping-command and if it displays a timeout, send a message to all users currently logged in multitail -ex timeout "echo timeout | wall" -l "ping 192.168.0.1" In one window show all new TCP connections and their state changes using netstat while in the other window displaying the merged access and error logfiles of apache multitail -R 2 -l "netstat -t" /var/log/apache/access.log -I /var/log/apache/error.log As the previosu example but also copy the output to the file netstat.log multitail -a netstat.log -R 2 -l "netstat -t tcp" /var/log/apache/access.log -I /var/log/apache/error.log Show 2 logfiles merged in one window but give each logfile a different color so that you can easily see what lines are for what logfile: multitail -ci green /var/log/apache/access.log -ci red -I /var/log/apache/error.log Show 3 rssfeeds merged in one window using rsstail multitail -cS rsstail -l "rsstail -n 1 -z -l -d -u http://setiathome.berkeley.edu/rss_main.php" -cS rsstail -L "rsstail -n 1 -z -l -d -u http://www.biglumber.com/index.rss" -cS rsstail -L "rsstail -n 1 -z -l -u http://kernel.org/kdist/rss.xml" Show a Squid (proxy server) logfile while converting timestamps to something readable multitail -cv squid /var/log/squid/access.log Display Q-Mail logging while converting the timestamp into human readable format multitail -cv qmailtimestr /var/log/qmail/qmail.smtpd.log Merge ALL apache logfiles (*access_log/*error_log) into one window: multitail -cS apache --mergeall /var/log/apache/*access_log --no-mergeall -cS apache_error --mergeall /var/log/apache/*error_log --no-mergeall Monitor the logfile of an other system: For this you need to setup a couple of things. MultiTail runs on system A, the logfile on system B. In this example we're going to monitor the apache logfile. Add the following to /etc/services: apachelog 20000/tcp Add this to /etc/inetd.conf: apachelog stream tcp nowait root /usr/local/sbin/tail_apache_log /usr/local/sbin/tail_apache_log and create the file /usr/local/sbin/tail_apache_log with the following content: #!/bin/sh /usr/bin/tail -f /var/log/apache2/access.log make sure that you don't forget to make that script executable (chmod +x filename). Then on host A start MultiTail like this: multitail -cS apache -l "telnet B 20000" Please note that logfiles go in plaintext across the network. You may also need to adjust the files /etc/hosts.[allow|deny] on host B to only allow host A to connect. Monitoring Tomcat multitail -cS apache -cS log4j "${TOMCAT_HOME}/logs/catalina.out"
转载请注明:爱开源 » multitail 监控多个文件或命令