编辑
2024-08-12
系统运维-Linux
00
请注意,本文编写于 605 天前,最后修改于 0 天前,其中某些信息可能已经过时。

目录

Dump Bootstrap进程的线程栈
强制 Dump Bootstrap进程的线程栈
强制 Dump Bootstrap进程的内存快照
查找Tomcat进程
杀Tomcat/Java进程
正常退出redis
挂载nfs盘
文件/夹占用空间详情
查看Nginx连接数
查看IP连接情况
统计端口连接数
查询5天前包含"log.*"的文件并删除
删除一个月前的所有文件
以某个角色运行命令
切换到某个角色在运行
日志分析, 查看登录用户信息
历史命令
df -i
vi/vim文本全局替换
通过/etc/fstab实现开机自动挂载NFS
VmwareSDK参考
在指定目录下多个文件内容中查找包含的关键字

Linux 系统运维与 Java 应用排障中,熟练掌握常用命令能显著提升工作效率。本文整理了一份高频使用的 Linux 命令速查清单,涵盖多个实战场景:JVM 故障排查(jstack 线程栈 dump、jmap 内存快照、kill -3 保留现场)、Tomcat/Java 进程管理(查找、优雅终止 kill -15、强制终止 kill -9)、NFS 挂载与开机自动配置(/etc/fstab)、磁盘与文件管理(du 查看占用、find 按时间删除旧文件、df -i 检查 inode 空间)、网络诊断(netstat 统计连接数与 IP 访问情况)、日志分析(who /var/log/wtmp 查看登录历史)、vi/vim 全局替换(:g/旧/s//新/g)、grep 递归搜索关键字,以及 runuser/su 指定用户运行命令等。

本文适用于 Linux 运维人员及 Java 后端开发者。

Dump Bootstrap进程的线程栈

shell
jstack -l $(jps |grep Bootstrap |awk '{print $1}') > $(hostname).dump.jstack

强制 Dump Bootstrap进程的线程栈

shell
jstack -l -F $(jps |grep unavailable |awk '{print $1}') > $(hostname).dump.jstack

强制 Dump Bootstrap进程的内存快照

shell
jmap -F -dump:format=b,file=~/$(hostname).dump $(jps |grep Bootstrap |awk '{print $1}')

查找Tomcat进程

shell
ps aux | grep tomcat

杀Tomcat/Java进程

shell
for i in `ps aux|grep tomcat|grep -v grep|awk '{print $2}'`;do kill -9 $i;done # 强杀 kill -9 $(jps |grep Bootstrap |awk '{print $1}') # 等待业务结束 kill -15 $(jps |grep Bootstrap |awk '{print $1}') # 打印进程各个线程的堆栈信息,kill -3 pid 后文件的保存路径为:/proc/${pid}/cwd,文件名为:antBuilderOutput.log, 保留现场的神奇命令 kill -3 $(jps |grep Bootstrap |awk '{print $1}')

正常退出redis

shell
pkill redis-server

挂载nfs盘

shell
mount -t nfs IP地址:/data /data

文件/夹占用空间详情

shell
du -shc *

查看Nginx连接数

shell
yum install net-tools -y netstat -n|awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

查看IP连接情况

shell
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

统计端口连接数

shell
netstat -nat|grep -i "PORT"|wc -l

查询5天前包含"log.*"的文件并删除

shell
find ./ -mtime +5 -name "log.*" -exec rm -f {} \; -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

删除一个月前的所有文件

shell
find . -mtime +31 -type f | xargs rm -rf

以某个角色运行命令

shell
runuser -u 角色名称 "/usr/local/zookeeper/bin/zkServer.sh" restart

切换到某个角色在运行

shell
su - tomcat -c "nohup java $JAVA_OPTS -jar $DORADO_HOME/$JAR_FILE > /dev/null 2>&1 &"

日志分析, 查看登录用户信息

shell
who /var/log/wtmp

历史命令

shell
# /root/.bash_history history

df -i

text
磁盘有空间却提示磁盘空间不足,此时应该果断查看inode空间是否已满; Linux索引节点(Inode)用满导致空间不足

vi/vim文本全局替换

shell
:g/旧文本/s//新文本/g

通过/etc/fstab实现开机自动挂载NFS

shell
# 远程/data目录挂载到本地/home/app/upload # qs 192.168.100.1:/data /home/app/upload nfs defaults,_rnetdev 0 0 # CentOS6/7 # 客户端 service rpcbind start # 服务端 # 配置白名单 vim /etc/exports ------------------------样式 /uc/files 10.205.61.0/24(rw,sync,no_root_squash) ------------------------------------ # 启动NFS服务 # 注意这两个服务的启动的顺序。必须先启动rpcbind服务 service rpcbind start service nfs start

VmwareSDK参考

text
源码:https://github.com/yavijava/yavijava 示例:https://github.com/yavijava/yavijava-samples

在指定目录下多个文件内容中查找包含的关键字

shell
#-r 是递归查找 #-n 是显示行号 #-R 查找所有文件包含子目录 #-i 忽略大小写 #-o 只输出匹配的内容(一般用于获取关键字在文件中出现的次数查找) #-w 按单词位单位过滤 #-v 取反(获取不包含关键字的文件内容) grep -r '关键字' 目录
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Odboy

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC 4.0 BY-SA 许可协议。转载请注明出处!