网站首页 > 技术文章 正文
这年头,大家都喜欢吃快餐,虽不健康,但是奈何真香!这里我把经常使用的运维指令总结成一套指令快餐。之所以称之为快餐是因为每个指令都是简单的一句或者两句话的简介。注意很多指令用法奇多,文中不会一一列出。
系统相关
df
查看磁盘剩余空间。一般 df -h
free
查看内存使用情况。一般 free -h
du
查看文件占用磁盘空间。一般 du -h
top
查看系统整体情况,包括CPU,内存,负载等等。直接 top即可。也可以这样top -H -p pid 查看某个进程下的线程情况。
ps
查看系统进程。直接命令行输入 ps -ef 或者 ps aux,将显示系统里面所有的进程。
一般我们会这样用 ps -ef|grep java|grep -v grep或者ps aux|grep tomcat|grep -v tomcat。查找出所有java进程或者tomcat进程。
kill
杀死进程。一般 kill -9 pid 强制杀死进程。也可以这样 ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
批量杀死所有Java进程。
pstree
查看一个进程下的线程数。一般 pstree -p pid |wc -l
mpstat
查看cpu 有关信息。直接命令行输入 mpstat,一般会这样使用,mpstat -P ALL 5 2,每5秒采集一次,采集2次。
vmstat
查看虚拟内存使用状态,及CPU等信息。用法和mpstat类似,vmstat 2 1 每两秒采集一次,一共采集一次。
pmap
查看一个进程是如何使用内存的。一般 pmap pid
iostat
查看机器IO情况,一般直接输入iostat指令。
lsof
查看进程打开的文件及网络端口。一般 lsof filename 查看哪个进程在使用该文件。lsof -i tcp:8083 列出哪个进程在使用8083端口
网络相关
curl
通过该指令可以访问URL地址。例如 curl http://url
wget
用于在命令行通过url下载文件,比如 wget http://url
ping
ping命令用来测试主机之间网络的连通性。ping ip
telnet
一般用于检查服务端某个端口联通性,比如 telnet ip port
ss,netstat
都可以显示网络系统的状态信息。一般netstat -anp|grep 8080 或者 ss -lnp。ss的优势是比较快。当服务器链接数过多时,netstat会很慢。
ifconfig
查看本机IP及硬件信息。一般 ifconfig -a
tcpdump
网络抓包,分析网络链接的细节问题。需要有sudo权限。
监听通过网卡 eth0 的网络包,并保存到 socketdump.dat ,tcpdump -i eth0 tcp -w socketdump.dat 注意这个文件需要使用wireshark 来分析,你用肉眼是解读不出什么的。
监听某个主机某个端口 tcpdump tcp port 8089 and host hostname
监听某个网段的数据 tcpdump tcp -c 10 net 172.22
traceroute
用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。一般traceroute www.baidu.com
jvm相关
jps
查看运行中的java进程,一般的 jps -lv
jmap
查看JVM堆内存使用情况,包括GC算法等信息。一般jmap -heap pid。
dump出内存文件,用jhat或者MAT进行分析。一般 jmap -dump:format=b,file=dumpFileName pid
jhat:
分析堆内存文件。一般jhat -J-Xmx2G -port 9998 dumpFileName 然后在浏览器端通过9998端口访问。建议不要在线上服务器上操作,会很占用内存和CPU。
jstack
查看Java进程内的线程堆栈信息。一般的 jstack pid | grep "java.lang.Thread.state"| sort -nr| uniq -c。查看进程各个状态数量。注意jstack显示的线程号都是16进制的。我们需要把进程号转换为16进制,命令行直接输入printf '%x\n' 3528,然后查找对应线程信息,jstack pid | grep 'nid'
jstat
可以看出堆内存及GC情况,一般的 jstat -gcutil pid。
结束
大家不要希望记住几个指令,就能解决线上所有问题,就能成为大牛。要想成为大牛还是要多实战,多看书。比如定位网络相关的问题,你最好多读几遍《TCP/IP详解》这本书,要想解决JVM相关的问题,你最好多去找几本JVM相关的书籍来看。快餐终究是快餐,解馋可以,对成长不利!
猜你喜欢
- 2024-10-19 Java高频面试题之Linux(java面试 linux)
- 2024-10-19 性能测试能力提升-JVM GC监控和优化
- 2024-10-19 排查GC问题常用的工具(排查问题的方式有哪些)
- 2024-10-19 开发好物推荐8之自动化部署插件,再也不用登录SSH
- 2024-10-19 20道阿里巴巴中高级java面试题详解,把这些弄懂offer拿到你手软
- 2024-10-19 Java Web实战篇:发布和运维必备的12条Linux命令
- 2024-10-19 Java工程师常用Linux命令大全(linux javac)
- 2024-10-19 玩转linux下启动jar和关闭jar方式(java程序员必看)
- 2024-10-19 超详细的EFK安装部署教程--环境准备篇
- 2024-10-19 为什么阿里架构师是这样定位Java性能问题的?这几点总结的很详细
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)