Linux系统信息查看与进程管理实用技巧
在实际运维工作中,经常需要查询系统配置、进程状态和应用信息。下面介绍一些实用的命令和方法,帮助快速定位问题。
过滤配置文件内容
使用 grep 排除注释行和空行,快速提取有效配置:
grep -vE '^#|^$' /etc/nginx/nginx.conf
参数说明:-v 反向匹配,-E 启用扩展正则,^# 匹配以 # 开头的行,^$ 匹配空行。
查看文件详细状态
stat 命令显示文件元数据,包括大小、权限、时间戳等:
$ stat /var/log/syslog
File: /var/log/syslog
Size: 124567 Blocks: 256 IO Block: 4096 regular file
Device: 801h/2049d Inode: 1234567 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 4/ adm)
Access: 2025-03-01 10:00:00.000000000 +0800
Modify: 2025-03-01 09:45:00.000000000 +0800
Change: 2025-03-01 09:45:00.000000000 +0800
Birth: 2025-02-28 12:00:00.000000000 +0800
关键字段:Access 最后访问时间,Modify 最后修改内容时间,Change 属性变更时间。
进程信息查询
ps 结合 sort、head 等工具灵活筛选:
# 查看CPU占用最高的5个进程
ps -eo user,pid,pcpu,pmem,args --sort=-pcpu | head -6
# 查看内存占用最高的5个进程
ps -eo user,pid,%mem,%cpu,rss,vsz,args --sort=-%mem | head -6
# 按进程启动时间和运行时长排序
ps -eo pid,user,lstart,etime,cmd --sort=start_time
# 自定义输出列
ps -eo rss,vsz,pmem,pcpu,comm | sort -k1 -rn
端口与网络状态检测
常用工具组合:
# 查看本地端口占用
netstat -tulpn | grep 8080
# 检测远程主机端口
nc -zv 192.168.1.100 22
# 扫描端口范围
nmap -sT -p 1-1000 192.168.1.100
# 统计TCP连接数
ss -tan | grep ESTAB | wc -l
系统性能监控要点
常用命令组合:
# 实时进程监控
top -b -n 1 | head -20
# 查看内存使用情况
free -h
# 磁盘I/O统计
iostat -x 1 3
# 网络流量监控
iftop -i eth0
日志查询:journalctl
使用 journalctl 检索 systemd 服务日志:
# 查看指定服务最新日志
journalctl -u nginx.service -n 50 --no-pager
# 实时跟踪日志
journalctl -u nginx.service -f
# 按时间范围过滤
journalctl -u nginx.service --since "2025-02-28 00:00:00" --until "2025-02-28 23:59:59"
应用关键信息确认清单
以 Tomcat 为例,需要掌握的要点:
- 版本查询:进入 bin 目录执行
sh version.sh - 配置文件:server.xml、context.xml、web.xml 等
- 日志位置:默认在 logs/ 目录下,包括 catalina.out、localhost.log 等
- 进程状态:
ps -ef | grep tomcat确认主进程和子进程 - 端口监听:
netstat -tlnp | grep java - JVM参数:查看 catalina.sh 中的 JAVA_OPTS 配置
其他应用(Nginx、Redis、MySQL 等)类似,关注版本、配置、日志、进程和网络状态。