我們需要下載Xshell 軟件來連接:
一般用個人版本就可以。
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);//單位:毫秒
}
}