我们需要下载Xshell 软件来连接:
一般用个人版本就可以,有一款Xshell集成工具很nice, Xmanager Enterprise4
1、新建连接,填写日志机的ID,用户名与密码,点击连接。
2.1、然后如果是跳板机的话需要连接到相应的ip 192.14.35.140 (如果ip输入错误,输出exit来重输)
2.2、然后输入相应ip服务机的用户名密码
su 用户名
密码
3.1、接下来登陆之后,要切换到日志文件目录处
cd /export/Logs/items.mark.com
3.2、然后运行命令打印相应日志文件
tail -fn 100 main.log
4、ctrl+c命令来退出打印命令 ( 输出停止 )
注: 有时候我们需要查询某行指定的日志,比如说我们要查看包含‘苹果‘的某行数据,那么我们需要用linux正则匹配来查看日志:
grep -C 100 '苹果' main.log
cat catalina.out |grep "发送的参数为" -C 10
此命令的意思是查看main.log文件中包含’苹果‘ 的行,并显示出其前100行与后100行,当然-A是只显示出其后100行 (after) ,-B是显示器前100行(before)
-- loger,info(" - - - - - - - - userinfoEntity{}",beanname)
二、在使用SecureCRT中有时候我们会频繁的输入linux命令来查看日志,我们可以使用使用SecureCRT提供的api来迅速一键访问日志:
首先需要将跳板机的连接session 改为 hnc-pre-182.16.23.290(这是js脚本文件的名称)(前提是大家已经配好了连接194跳板机的链接session)
1、执行脚本
2、在弹出框中输入微服务名称,如order、item,屏幕打印出命令:"tail -f main.log"时,脚本执行完毕
----------
3、脚本执行过程中额外操作键盘或鼠标可能会导致脚本中断,重新执行一下脚本即可,SecureCRT 脚本中的api很少,大家可以研究一下,根据自己需要写自己的脚本,提高开发效率
# $language = "JScript"
# $interface = "1.0"
var hostList = {
"dss":"10.260.0.155",
"worker":"10.170.0.173",
"promotion":"10.460.0.175",
"cart":"10.160.2.191",
"order":"10.160.0.122",
"user":"10.160.2.132",
"seller-assemble":"10.160.212.192",
"postman":"10.160.2.178",
"platform":"10.160.6.1",
"platform-passport":"10.160.221.32",
"platform-assemble":"10.160.211.35",
"passport":"10.160.234.195",
"base":"10.160.234.216",
"shop":"10.160.234.224",
"item":"10.160.223.194",
"finance":"10.160.212.193",
"buyer-assemble":"10.160.122.206",
"refund":"10.160.212.212",
"comment":"10.160.212.210",
"authority":"10.160.212.214",
"workflow":"10.160.212.100",
"price":"10.160.212.73",
"settlement":"10.160.122.34",
"shop-credit":"10.160.122.19",
"statistics":"10.160.126.60"
};
//默认位false,设置屏幕的同步属性,若设置为false,WaitForString、WaitForStrings或ReadString函数时可能存在丢失一部分数据的现象,但是若为true,可能造成SecureCRT假死
//crt.Screen.Synchronous = true;
var sessionConfig = crt.OpenSessionConfiguration("hnc-pre-172.19.22.240");//获取session
var thisTab = sessionConfig.ConnectInTab();//开启session,获取tab页对象
//var thisTab = crt.GetScriptTab();
thisTab.Screen.Send("\n"); //向屏幕发送回车
thisTab.Screen.WaitForString("Select server: ",2);//阻塞脚本,等待字符串 "Select server: " 出现,超时时间为2秒
thisTab.Screen.Send("3\n");
thisTab.Screen.WaitForString("Select account: ",2);
thisTab.Screen.Send("1\n");
thisTab.Screen.WaitForString("$ ",2);
thisTab.Screen.Send("su liluguang\n");
thisTab.Screen.WaitForString("Password: ",2);
thisTab.Screen.Send("hssvcpZbgi6~tWt0rder\n");
thisTab.Screen.WaitForString("输入要连接的服务器IP地址: ",2);
var serviceName = crt.Dialog.Prompt("输入微服务名称,如 order","选择微服务","order");//输入框,选择微服务名称
var thehost=serviceName && hostList[serviceName];
if(thehost){
thisTab.Screen.Send(thehost+"\n");
thisTab.Screen.WaitForString("# ",2);
thisTab.Screen.Send("cd /export/Logs/"+serviceName+".eureka.com/\n");
thisTab.Screen.WaitForString("# ",2);
thisTab.Screen.Send("tail -100f main.log\n");
var selectValue=crt.Dialog.MessageBox("是否通过定时发送回车保持连接?","提示",32|1);
while(selectValue==1 && crt.Session.Connected){
thisTab.Screen.Send("\n");
crt.Sleep(20000);//单位:毫秒
}
}