ssh 获取服务器文件命令,ssh读取服务器文件内容
@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读取服务器文件内容相关推荐
- matlab显示服务器出现意外,Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决...
1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can't open fi ...
- 将数据写入json文件,并且读取json文件中的数据
目录 一.将数据生成json文件 二.读取json文件中的数据 三.方法测试 四.其他附件 1.User实体类 2.import 一.将数据生成json文件 方法 /*** 生成.json格式文件*/ ...
- 内网xshell传输文件命令_Xshell 上传文件到服务器 以及常用的lunix 命令
Xshell 上传文件到服务器 1:输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行 yum -y install lrzsz命令进行安装. 2:安装成功后查看是否安装成功 3:输入rz ...
- python从云端服务器读数据_audio 读取服务器文件
PHP面试干货 1.进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一 ...
- 上传文件到服务器的命令,ftp上传文件到服务器命令
ftp上传文件到服务器命令 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务 ...
- python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据
文章目录: 1 数据说明 2 把数据集文件信息使用python pandas保存成csv文件 3 使用python pandas 读取csv的每行.每列数据 1 数据说明 1.在test_data目录 ...
- android获取手机资源文件,android MediaStore 读取手机文件
背景:项目需求,聊天界面需要发送文件.所以,仿qq开发文件组件,以供所有项目使用 目标:记录组件开发中的一次技术积累,与大家分享 前言: 大家可以打开qq,聊天界面底部九宫格中有"文件&qu ...
- python获取股指_用Python读取csv文件中的沪深300指数历史交易数据
保存路径:D:\python\用Python读取csv文件中的沪深300指数历史交易数据 程序名称:readcsvhs300.py: 数据名称:沪深300指数历史交易数据.csv: 开发环境:Win7 ...
- php获取页面视频文件,php获取视频时长_php 读取视频文件播放时间长度
摘要 腾兴网为您分享:php 读取视频文件播放时间长度,中信期货,中日翻译,一路捞,信和财富等软件知识,以及阳光炫舞,火绒安全软件,qq锁,微信摇一摇抽奖软件,稿定设计软件,开始菜单图标,钩肥大战,g ...
最新文章
- 10、计算机图形学——几何介绍(曲面的分类以及示例)
- HDFS分布式文件系统设计原理
- [算法]不使用*、/、+、-、%操作符求一个数的1/3
- 游戏笔记本计算机购买,2021大学生买电脑,容易犯的七种错误!游戏本和轻薄本买哪个?...
- python交易_Python实现银行账户资金交易管理系统
- 使用extract-text-webpack-plugin提取css文件
- 缓存能提高多少 php,提高PHP编程效率 引入缓存机制提升性能
- 大一c语言编程上机题库,C语言上机题库Word版
- Ansible tower 3.7.0-4自动化运维管理安装方法
- 冯诺依曼体系结构及三级缓存
- 受欢迎的牛+Trajan缩点+树形dp
- 《烈烈先秦》8、独撑大厦的真勇者——半残战神李牧
- java爬取今日头条_今日头条抓取街拍图片数据集
- ticktock卖给oracle,Intel拾起Tick-Tock战略:2024/2025年重返CPU巅峰
- 适配2K和4K分辨率
- Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式
- java 五子棋_Java GUI 单机版五子棋
- 房卡棋牌俱乐部功能开发(一)
- 100天精通Python(基础篇)——第26天:lambda表达式基础+代码实战
- MBTI十六型人格之我导对鄙人的评价