TS - 查看应用信息及状态
通过 grep 命令查看指定配置内容
grep -vE '^#|^$' <filename> # 显示指定的内容(非空行、非注释)
# -E 表示 "或" 的关系
# "^" 表示行首,"^#" 表示以#开头的行
# "$" 表示行尾,"^$" 表示空行
通过 stat 命令显示文件状态信息
# 可以查看的信息包括:
# - File:显示文件名
# - Size:显示文件大小
# - Blocks:文件使用的数据块总数
# - IO Block:IO块大小
# - regular file:文件类型(常规文件)
# - Device:设备编号
# - Inode:Inode号
# - Links:链接数
# - Access:文件的权限
# - Gid、Uid:文件所有权的Gid和Uid
# - Access time:表示最后一次访问(仅访问,无改动)文件的时间
# - Modify time:表示最后一次修改文件的时间
# - Change time:表示最后一次对文件属性改变的时间,包括权限,大小,属性等
# - Birth time : 文件创建时间(目前此属性已废弃,显示结果均为-)
示例
$ stat test-file
File: ‘test-file’
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 68623069 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 3001/ vipxf) Gid: ( 3001/ vipxf)
Access: 2023-03-27 15:07:05.367335846 +0800
Modify: 2023-03-06 16:34:44.276126745 +0800
Change: 2023-03-06 16:34:44.276126745 +0800
Birth: -
$
通过 PS 命令查看进程信息
结合sort、grep、head、tail、less等命令进行信息过滤
# ps 命令
# -e 显示所有进程
# -f 全格式
# -a 显示终端上的所有进程
# -u 以用户格式显示程序状态
# -x 显示没有控制终端的进程(显示所有程序,不以终端机来区分)
# -o 定制显示信息的格式
# --sort 指定排序
# ps -ef
ps -ef --sort -time |head -2 # 显示运行最久的进程
# ps -aux
# 输出格式: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# VSZ 占用虚拟内存
# RSS 占用实际内存
# TTY 进程运行的终端
# STAT 进程状态
# START 进程的启动时间
# TIME 进程占用CPU的总时间
ps aux --sort -%mem |head -2 # 显示内存使用百分比最高的进程
ps aux --sort -%cpu # 降序显示CPU占用率的进程(-表示降序)
ps aux --sort rss # 升序序显示驻留内存的进程
# 自定义显示字段
ps -eo pid,user,lstart,etime,cmd
# pid 进程ID
# user 运行进程的用户
# lstart 进程启动时间
# etime 进程总运行时间
# cmd 进程命令
ps -eo rss,vsize,pmem,pcpu,args | sort -k 1 -r -n
# rss 进程占用RAM(内存)的大小,单位是KB
# vsize 进程占用虚拟内存的大小,单位是KB
# pmem 占用内存的百分比
# pcpu 占用cpu的百分比
# args / cmd / command 进程名
# sort命令
# -k 1 按第一个参数进行排序
# -r 逆序
# -n 按数字来排序
ps -axo user,pid,ppid,%mem,command
# 参数-o指定列显示
# ppid 子进程ID
ps -axo user,pid,ppid,%mem,%cpu,command --sort -%cpu
# 指定显示列,并根据指定列排序
查看指定端口状态
- 检测本机8080端口状态:
netstat –apn | grep 8080
- 检测192.168.0.1主机的8080端口状态:
telnet 192.168.0.1 8080
或nmap -sS -P0 -n -p 22 192.168.0.1
- 检测192.168.0.1主机的1到1024端口状态:
nc -z 192.168.0.1 1-1024
# nmap -sS -P0 -n -p 22 10.140.0.135
Starting Nmap 6.40 ( http://nmap.org ) at 2016-11-09 10:42 CST
Nmap scan report for 10.140.0.135
Host is up (0.00040s latency).
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 08:00:27:3F:19:79 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
# nmap -sS -P0 -n -p 80 10.140.0.135
Starting Nmap 6.40 ( http://nmap.org ) at 2016-11-09 10:50 CST
Nmap scan report for 10.140.0.135
Host is up (0.00046s latency).
PORT STATE SERVICE
80/tcp closed http
MAC Address: 08:00:27:3F:19:79 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
查看系统性能
- top
- ps
- vmstat
- lsof
- ip / netstat
# 查看网络连接数
netstat -na|grep ESTABLISHED|wc -l
# 查看CPU占用率前十的进程
ps -eo user,pid,pcpu,pmem,args --sort=-pcpu | head -n 10
# 查看内存占用率前十的进程
ps -eo user,pid,pcpu,pmem,args --sort=-pmem | head -n 10
通过 journalctl 查看服务状态和日志
journalctl 用来查询 systemd-journald 服务收集到的日志。
systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务。
只用一个journalctl命令,就可以查看所有内核和应用的日志。
例如查看promtail服务日志:journalctl -u promtail -ex
参考信息
- https://www.cnblogs.com/jasonboren/p/11493353.html
- https://www.cnblogs.com/zlw-xyz/p/12882072.html
- http://events.jianshu.io/p/9fcc8c7bdb85
确认应用的关键信息
确认常见应用的关键信息,例如:Nginx、Redis、RocketMQ、Tomcat等
包括但不限于如下内容:
- 版本及各组件版本信息
- 配置文件问题及主要参数
- 日志存放位置、分片和存储策略、关键标识信息
- Dashboard
- 进程状态进程状态辨别
- 网络状态(端口、链接等)
- 配置及日志备份策略
- 重启、重置、重装的方法
- ......
例如查看Tomcat的版本信息
在tomcat的bin目录下执行version.sh就可以看到版本信息:sh xxx/tomcat/bin/version.sh
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。