内容简介:公司用的jenkins在配置的时候全都是脚本, 然后我就想着能否用开发语言调用linux上的命令拿到输出内容, 这样不就可以做一个日志监控站了吗!然后就折腾了一下, 实现了nodejs和java里的用法nodejs实现方法
公司用的jenkins在配置的时候全都是脚本, 然后我就想着能否用开发语言调用 linux 上的命令拿到输出内容, 这样不就可以做一个日志监控站了吗!
然后就折腾了一下, 实现了nodejs和 java 里的用法
nodejs实现方法
var iconv = require("iconv-lite"); var spawn = require("child_process").spawn; // 这货第一个参数就是命令本身, 后面的参数要放在数组里, 我最开始把 ping baidu.com 当成命令了, -t 当成参数, 死活没有数据输出 var processObj = spawn("ping", ["baidu.com", "-t"]); // 这个方法后面有个参数可以指定编码, 我这设置没有用.. // 监听执行命令输出内容事件 processObj.stdout.on("data", function(thunk) { console.log(iconv.decode(thunk, "gbk")); }); processObj.stderr.on("data", function(data) { console.log("stderr: ", data); }); processObj.on("close", function(code) { console.log("close: ", code); }); processObj.on("exit", function(code) { console.log("exit: ", code); });
先安装一下依赖 iconv-lite
然后直接使用nodejs运行即可, 如果你的运行平台是mac或者linux, 这个包是不用安装的, 它主要是用来转码的
在测试的时候发现windows上输出内容中文乱码, 就找到了这个东西来转码
原接文链: https://tomoya92.github.io/2019/05/22/nodejs-java-shell/
java实现方法
String command = "ping baidu.com -t"; Process process = Runtime.getRuntime().exec(command); BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), Charset.forName("GBK"))); // 这里编码如果是mac或者linux可以使用utf-8 String line; while ((line = br.readLine()) != null) { System.out.println(line); }
通过上面代码可以拿到执行命令后的内容, 然后结合websocket输出到页面上, 实现一个日志查询系统相当的爽, 不可有个问题, 没有啥办法能让它停下来…
也可以通过执行 wget 或者 axel 命令来实现一个下载任务
原文链接:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 拿到一个 Demo 该怎么下手?
- 拿到一个 Demo 该怎么下手?
- 如何备战蓝桥杯拿到省一
- 利用XSS漏洞轻松拿到登录用户的cookie
- Sqlmap初体验,渗透拿到网站用户名密码
- 春招:我居然三天就拿到了offer?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度学习
[美] 伊恩·古德费洛、[加] 约书亚·本吉奥、[加] 亚伦·库维尔 / 赵申剑、黎彧君、符天凡、李凯 / 人民邮电出版社 / 2017-7-1 / 168
《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。 《深度......一起来看看 《深度学习》 这本书的介绍吧!