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 8080nmap -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

参考信息


确认应用的关键信息

确认常见应用的关键信息,例如:Nginx、Redis、RocketMQ、Tomcat等
包括但不限于如下内容:

  • 版本及各组件版本信息
  • 配置文件问题及主要参数
  • 日志存放位置、分片和存储策略、关键标识信息
  • Dashboard
  • 进程状态进程状态辨别
  • 网络状态(端口、链接等)
  • 配置及日志备份策略
  • 重启、重置、重装的方法
  • ......

例如查看Tomcat的版本信息

在tomcat的bin目录下执行version.sh就可以看到版本信息:sh xxx/tomcat/bin/version.sh

posted @ 2024-07-25 16:41  Anliven  阅读(14)  评论(0编辑  收藏  举报