@Override

@Transactional

public void analysisIPSLog() {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

SimpleDateFormat hmsdf = new SimpleDateFormat("HH:mm:ss");

List ipsLogPojoList = new ArrayList<>();

//从配置文件中读取服务器信息

ResourceBundle bundle = ResourceBundle.getBundle("config/ips_info");

String ip = bundle.getString("remote_ip");

int port = Integer.parseInt(bundle.getString("remote_port"));

String user = bundle.getString("remote_user");

String password = bundle.getString("remote_password");

String filePath = bundle.getString("remote_file_path");

Connection connection = null;

Session session = null;

InputStreamReader inputStreamReader=null;

BufferedReader bufferedReader=null;

try {

//采用ssh连接,获取连接对象

connection = FileUtils.getSSHConnection(ip, port, user, password);

if (connection != null) {

//执行ssh命令

String command = "tail -n +".concat(String.valueOf(pointer)).concat(" " + filePath);

session = connection.openSession();

session.execCommand(command);

InputStream sessionStdout = session.getStdout();

inputStreamReader = new InputStreamReader(sessionStdout);

bufferedReader = new BufferedReader(inputStreamReader);

//判断读取位置,在凌晨的时候,重置读取位置

String changePointer = hmsdf.format(new Date());

if (changePointer.contains("00:01")) {

pointer = 1L;

}

LOGGER.info("开始读取IPS日志文件,读取起始行位置【" + pointer + "】");

String str ;

while ((str = bufferedReader.readLine()) != null) {

String arrString[] = str.split(",");

if (arrString.length == 22) {//ips日志共计22个字段

IPSLogPojo ipsLogPojo = new IPSLogPojo();

ipsLogPojo.setCreateTime(sdf.format(new Date()));

ipsLogPojo.setStateCode("0");

ipsLogPojo.setIpslogTime(arrString[0]);

ipsLogPojo.setIpsSyslogId(arrString[1]);

ipsLogPojo.setIpsVSys(arrString[2]);

ipsLogPojoList.add(ipsLogPojo);

}

pointer++;

}

//将解析的数据入库

ipsLogDao.batchInsertData(ipsLogPojoList);

LOGGER.info("-------本次插入防火墙日志数量为【"+ipsLogPojoList.size()+"】条---------");

}

} catch (IOException e) {

LOGGER.warn("解析IPS日志异常,异常信息:",e);

} finally {

if(inputStreamReader!=null){

try {

inputStreamReader.close();

}catch (IOException e){

LOGGER.error("inputStreamReader关闭异常");

}

}

if(bufferedReader!=null){

try {

bufferedReader.close();

}catch (IOException e){

LOGGER.error("inputStreamReader关闭异常");

}

}

if (session != null) {

session.close();

}

if (connection != null) {

connection.close();

}

}

}

ssh 获取服务器文件命令,ssh读取服务器文件内容相关推荐

  1. matlab显示服务器出现意外,Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决...

    1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can't open fi ...

  2. 将数据写入json文件,并且读取json文件中的数据

    目录 一.将数据生成json文件 二.读取json文件中的数据 三.方法测试 四.其他附件 1.User实体类 2.import 一.将数据生成json文件 方法 /*** 生成.json格式文件*/ ...

  3. 内网xshell传输文件命令_Xshell 上传文件到服务器 以及常用的lunix 命令

    Xshell 上传文件到服务器 1:输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行 yum -y install lrzsz命令进行安装. 2:安装成功后查看是否安装成功 3:输入rz ...

  4. python从云端服务器读数据_audio 读取服务器文件

    PHP面试干货 1.进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一 ...

  5. 上传文件到服务器的命令,ftp上传文件到服务器命令

    ftp上传文件到服务器命令 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务 ...

  6. python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据

    文章目录: 1 数据说明 2 把数据集文件信息使用python pandas保存成csv文件 3 使用python pandas 读取csv的每行.每列数据 1 数据说明 1.在test_data目录 ...

  7. android获取手机资源文件,android MediaStore 读取手机文件

    背景:项目需求,聊天界面需要发送文件.所以,仿qq开发文件组件,以供所有项目使用 目标:记录组件开发中的一次技术积累,与大家分享 前言: 大家可以打开qq,聊天界面底部九宫格中有"文件&qu ...

  8. python获取股指_用Python读取csv文件中的沪深300指数历史交易数据

    保存路径:D:\python\用Python读取csv文件中的沪深300指数历史交易数据 程序名称:readcsvhs300.py: 数据名称:沪深300指数历史交易数据.csv: 开发环境:Win7 ...

  9. php获取页面视频文件,php获取视频时长_php 读取视频文件播放时间长度

    摘要 腾兴网为您分享:php 读取视频文件播放时间长度,中信期货,中日翻译,一路捞,信和财富等软件知识,以及阳光炫舞,火绒安全软件,qq锁,微信摇一摇抽奖软件,稿定设计软件,开始菜单图标,钩肥大战,g ...

最新文章

  1. 10、计算机图形学——几何介绍(曲面的分类以及示例)
  2. HDFS分布式文件系统设计原理
  3. [算法]不使用*、/、+、-、%操作符求一个数的1/3
  4. 游戏笔记本计算机购买,2021大学生买电脑,容易犯的七种错误!游戏本和轻薄本买哪个?...
  5. python交易_Python实现银行账户资金交易管理系统
  6. 使用extract-text-webpack-plugin提取css文件
  7. 缓存能提高多少 php,提高PHP编程效率 引入缓存机制提升性能
  8. 大一c语言编程上机题库,C语言上机题库Word版
  9. Ansible tower 3.7.0-4自动化运维管理安装方法
  10. 冯诺依曼体系结构及三级缓存
  11. 受欢迎的牛+Trajan缩点+树形dp
  12. 《烈烈先秦》8、独撑大厦的真勇者——半残战神李牧
  13. java爬取今日头条_今日头条抓取街拍图片数据集
  14. ticktock卖给oracle,Intel拾起Tick-Tock战略:2024/2025年重返CPU巅峰
  15. 适配2K和4K分辨率
  16. Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式
  17. java 五子棋_Java GUI 单机版五子棋
  18. 房卡棋牌俱乐部功能开发(一)
  19. 100天精通Python(基础篇)——第26天:lambda表达式基础+代码实战
  20. MBTI十六型人格之我导对鄙人的评价

热门文章

  1. 华为交换机Hybrid接口
  2. 浅谈数码相机成像中 ISO(感光度)的作用
  3. Apache Ambari介绍
  4. 简易搭建阿里云个人简历网站教程
  5. HDU1087 噜啦啦卢
  6. android客户端动态折线图
  7. 工业机器人 郝卫东_智能保安巡逻机器人论文
  8. 展会推广有哪些好的创意 怎样让展会推广更有创意
  9. Python实现中文转拼音功能
  10. mac可以用计算机考试系统吗,苹果测试在iPhone上装macOS电脑系统?这太牛了吧