之前有同事希望在终端下开多个窗口查看服务状态,后来用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 监控多个文件或命令