使用Java连接云服务器并使用shell命令(查看Tomcat日志)

    xiaoxiao2023-10-04  155

    使用Java连接云服务器并使用shell命令(查看Tomcat日志)

    public static Connection getConnection(){ String hostName = "云服务器的IP"; String userName = "登录云服务器的用户名 一般为root"; String password = "云服务器密码"; int port = 22; Connection connection = new Connection(hostName,port); try { //连接到主机 connection.connect(); //使用用户名和密码校验 boolean isconn = connection.authenticateWithPassword(userName,password); if (!isconn){ System.out.println("用户名或密码错误"); } else { System.out.println("服务器连接成功"); return connection; } }catch (Exception e){ e.printStackTrace(); } return null; }

    测试例子—通过shell命令读取Tomcat的日志

    public static String getLog() throws IOException { Connection conn = getConnection(); //Tomcat的日志文件名带有日期,因此可以设置一个日期时间 格式日期格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); //获取当前时间 Date date = new Date(); String now = simpleDateFormat.format(date); //编写Tomcat日志所在的路径 //需要读取的catalina.log文件 全路径 查看异常 错误日志路径 String logFile = "/home/pan/tomcat/logs/catalina."+now+".log"; //获取tomcat一日的访问总数日志路径 和 哪个时间点有请求 String logFile1 = "/home/pan/tomcat/logs/localhost_access_log.“+now+”.txt"; //关键字 String key = "Exception"; //查看tomcat异常命令 String cmd = "cat " +logFile+" | grep "+key+" -A 1"; //查看一日访问/请求命令 String cmd1 = "cat "+logFile1+"|awk '{aaa[$1]++;} END{for(i in aaa) { printf(\"%s\\t%s\\n\", aaa[i], i); }}' | sort -bn"; //哪个时间点有请求 String cmd2 = "cat "+logFile1+"|cut -d : -f 2-3 |sort|uniq -c"; Session session = conn.openSession(); /执行shell命令 session.execCommand(cmd1); //处理获取的shell命令的输出信息 InputStream stdout = session.getStdout(); InputStreamReader inputStreamReader = new InputStreamReader(stdout); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = bufferedReader.readLine(); String lastLineLog = null; System.out.println("----------以下是获取日志的全部信息--------------"); while (s!=null){ if (s!=null){ lastLineLog = s; System.out.println(s); } s = bufferedReader.readLine(); } System.out.println("----------以上是获取日志的全部信息--------------"); //最后关闭session资源 if (session != null){ session.close(); } return lastLineLog; }

    至于每日访客量,请求总数,哪个时间点有请求就把拿到的数据解析就完事了。shell命令已经写好在上面了 。

    最新回复(0)