在 linux shell 下经常使用的一个命令组合: grep [-v] "filter" filePath | tail -n needLines,用来查看文件中符合条件的最后 n 行记录,尤其在监控 server 的 log 的时候。
现在有一个需求:从 web 管理后台向 search server 发送一个 stat 命令,查看搜索索引的各项统计信息,其中就包括索引更新,查询的 log 的最后 n 条记录。于是需要在 search server 里实现这样一个功能。
PS:如果是 php,我肯定会选用 exec 一条外部 shell 命令,获取命令的输出 的方式来做,但 java,只好自己动手,重复发明轮子了。
PS2:stl 的 rotate 代码真是太精炼了。有空需要多看看这样的代码,能从中学到很多“ how code talks ”
/**
* implenment: grep [-v] "filter" filePath | tail -n needLines
*
[...]
分享到:
相关推荐
这个Java实现的Shell包含了诸多常见命令,如`pwd`用于显示当前工作目录,`cd`用于切换目录,`ls`列出目录内容,`cat`查看文件内容,`echo`打印文本,`head`和`tail`分别用于显示文件的前几行和后几行,`grep`进行...
- **命令行操作**:ls, pwd, cd, mkdir, cat, head, more, less, cp, mv, rm, rmdir, chmod, chown, chgrp, diff, wc, scp, split, tail, touch, find, grep, sort, uniq, tar, df, du, ps, top, kill, crontab, who...
不过,Windows CMD并没有内置这个功能,但我们可以借助第三方工具来实现类似的效果。在提供的资源中,包含了一个名为`tail.exe`的可执行文件,这正是一个适用于Windows的`tail`命令模拟工具。 `tail`命令的主要功能...
`ps aux | grep java` 可以查看与Java相关的进程。 18. **kill/killall**:结束进程。`kill -9 pid` 强制结束指定进程ID的进程,`killall process_name` 结束所有同名进程。 19. **top/htop**:实时监控系统资源...
它遵循Unix的哲学,仅做其主要工作,并期望其输入由其他更高级的工具(tail,cat,type,find ...)生成。 没有目标与Unix grep兼容。 LogsGrep用Java编程语言编写,同时考虑到性能和低资源使用(无字符串,无对象...
Unix4j是Java中Unix命令行工具的实现。 您可以在Java程序中使用从Unix知道的命令-您可以将一个命令的结果通过Unix传递给另一个命令。 Unix4j为您提供unix命令的功能,例如文本处理,文件管理,以及Java等强类型和可...
- `List<Map>`转到记事本:在Java中,将List转换成文本格式,通常是为了便于查看或记录,可以使用循环遍历并拼接字符串来实现。 3. **SQL函数**: - `CASE WHEN`函数:在SQL中,这是一种条件判断语句,可以根据...
- 查看日志确认启动成功:`tail -f server.log` #### 六、終止服务 - 查询端口占用:`netstat -anp | grep 8070` - 杀死进程:`kill -9 PID` #### 七、Nginx配置 - 将打包好的前端文件放置于`/home/mesdemo/...
2. **文本处理**:cat、more、less、head、tail、grep、sed、awk。 3. **权限和用户管理**:chmod、chown、chgrp、su、sudo。 4. **进程管理**:ps、kill、pkill、top、htop。 5. **网络操作**:ping、telnet、...
`grep`用于搜索文本,`lsof`显示进程打开的文件,`mkdir`创建目录,`rm`删除文件,`tail`查看文件尾部,`whereis`定位命令位置,`pwd`显示当前工作目录,`tar`、`gzip`、`unzip`分别用于归档、压缩和解压缩文件,`...
- **grep**: 在文件中搜索指定的字符串。 - **find**: 搜索特定类型的文件。 - **chmod**: 改变文件或目录的权限。 - **chown**: 改变文件或目录的所有者。 **1.3 UNIX系统常用命令(三)** - **tar**: 打包或解压...
JAVA 面试问题系列 - Linux 指令与 CPU 负载分析 本文将围绕 Linux 指令和 CPU 负载分析展开,涵盖了 CPU 负载和 CPU 利用率的概念、Linux 指令的应用、CPU 使用率的分析和 troubleshoot 等知识点。 CPU 负载和 ...
- **进程启动确认:** 通过 `ps -ef | grep` 检查特定服务是否启动,如 `ps -ef | grep httpd` 和 `ps -ef | grep java` 分别检查 Apache 和 Java 进程。 - **端口冲突检测:** `netstat -an | grep <port>` 用于检查...
其他常用命令包括`ln`(创建链接)、`tail`(查看文件尾部,常与`-f`一起用于实时日志监控)、`type`(查找命令路径)、`wc`(统计行数)、`grep`(在文件中搜索特定内容)、`find`(查找文件)、`date`(查看日期)...
- `tail`:显示文件的尾部内容,通常用`tail -f`来实时查看日志。 - `type`:显示命令的路径,确认命令的来源。 - `wc`:统计文件的行数、单词数和字节数。 - `grep`:在文件内容中搜索特定模式。 - `find`:在...
学习使用`grep`、`tail`等命令来追踪错误信息。 通过以上步骤,你将在Linux环境中成功部署一个完整的JavaWeb环境,支持MySQL、Java、Nginx、Redis和PHP。这将为你的开发和测试工作提供便利,同时提高生产环境的稳定...
`tail-f`则常用于实时监控日志文件的变化,如`tail-fcatalina.out`用于监视Catalina日志,这对于调试和维护基于Java的应用程序非常有用。 ### 4. 资源限制与优化 #### 内存与线程池配置 通过修改环境变量`WLS_MEM_...
2. `tail`:用于查看文件尾部,`tail -f`常用于监控日志变化。 3. `more`:分页查看文件内容,如`cat 1.txt | more`。 4. `netstat -a`:查看所有网络连接和监听端口。 5. `ps -ef`:列出系统中所有进程,`grep 进程...
- 可能会使用`tail`, `grep`, `awk`等命令行工具,结合`cron`定时任务来定期检查日志文件。 以上内容涵盖了shell脚本在Java应用部署中的核心知识点,包括JAR和WAR的使用,以及如何通过shell脚本来管理和维护Java...
在Java软件工程师的面试中,对Linux命令的熟悉程度常常是评估候选人技术能力的一个重要方面。Linux操作系统以其稳定性和灵活性被广泛应用于服务器环境,因此掌握一些基础的Linux命令对于开发人员来说至关重要。 一...