[英]Simultaneously monitoring multiple log files (over ssh) on Windows?
我使用 poderosa(一个 .NET 终端应用程序)来监视多个 linux/solaris 服务器上的日志。 这个应用程序目前没有得到维护,我遇到了几个问题。
我想知道其他用户如何同时实时监控多个日志(如在 tail -f 日志文件中)。 我希望能够制表/级联几个 ssh 尾巴。
你可以直接ssh到一个服务器,并从那里使用mutitail来拖尾所有其他服务器上的日志。
您可以使用Putty Connection Manager向PuTTy添加选项卡。 然后SSH进入机器两次并来回切换。
Ssh到其中一个服务器,运行它的屏幕。 然后,您可以将屏幕分成多个窗口,每个窗口都可以
ssh serverX tail -f /path/to/log/file
这种方法的一个附带优点是,每次连接时都不必重新启动尾部 - 相反,您只需重新连接到正在运行的屏幕会话即可。
从bash你可以(保存在~/.bashrc
或其他东西):
function create-follower () {
local _NAME=$1;
local _USER=$2;
local _HOST=$3;
local _PATH=$4;
if ! [ "${_NAME}" ]\
|| ! [ "${_USER}" ]\
|| ! [ "${_HOST}" ]\
|| ! [ "${_PATH}" ] ; then
{ echo "Cannot create log follower." ;
echo;
echo "Usage: create-follower NAME USER HOST LOG-FILE";
} >&2;
return 1 ;
fi ;
eval "function ${_NAME}(){ ssh ${_USER}@${_HOST} tail -f \"${_PATH}\" & }"
}
function activate-followers () {
if (( $# < 1 )) ; then
{ echo "You must specify at least one follower to use" ;
echo ;
echo "Usage:" ;
echo " activate-followers follower1 [follower2 ... followerN]";
} >&2;
return 1 ;
fi ;
for FOLLOW in "${@}" ; do
${FOLLOW} ;
done ;
wait;
}
function stop-followers () {
if [ "$(jobs)" ] ; then
kill -9 $(jobs | perl -pe 's/\[([0-9]+)\].*/%$1/') ;
fi ;
}
然后从shell中定义要遵循的日志:
[dsm@localhost:~]$ create-follower test1 user1 localhost /tmp/log-1.txt
[dsm@localhost:~]$ create-follower test2 user2 otherhost /tmp/log-2.txt
[dsm@localhost:~]$ create-follower test2 user3 remotebox /tmp/log-3.txt
现在,激活粉丝:
[dsm@localhost:~]$ activate-followers test1 test2 test3
要退出该函数,请使用CTRL+C
,并停止后台进程使用:
[dsm@localhost:~]$ stop-followers
注1:这假设已经为您的盒子设置了公钥认证。
注意2:退出activate-followers功能后,您必须终止所有剩余的作业。 您可能希望手动执行此操作,因为所提供的功能会对所有后台作业执行强制执行操作
注3:这假设一个类似unix的工作环境,你可以通过安装cygwin来获得
谁说你不能在shellcript中做lisp ;-)
您可以在旁边的日志中查看。
我创建的Java工具,能够使用SSH读取本地和远程日志文件。 它使用起来相当简单。
更多解释: https : //github.com/pschweitz/insidelog/wiki
只需下载与您的操作系统相对应的版本,或Java Runtime中的本机jar发行版可执行文件(需要java 8_40或更高版本):
https://github.com/pschweitz/insidelog/releases
您可以找到完整的文档(也在Github的页面中嵌入)
首先出现在我脑海中的两个选项。
选择你最喜欢的SSH应用程序(putty,ssh in cygwin等)并登录到该机器。
1.每个日志的SSH(根据您的应用程序在您的计算机或选项卡上打开许多窗口)
2. SSH一次并使用屏幕 。
如果您确实需要同时查看两个日志,并且选项卡不可用,则可以安装名为LogResolveMerge.pl的perl脚本。 它将两个日志合并在一起,并将输出转储到STDOUT。 但是,这将是资源密集型的,如果您打算使用日志,那么它可能不会太有效。
您应该能够使用结构来执行此操作,如https://www.markhneedham.com/blog/2013/01/15/fabric-tailing-log-files-on-multiple-machines/中所述:
fab -P --linewise -H host1,host2,host3 -- tail -f /path/to/logfile
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.