当接手一台新的 Linux 服务器时,第一要务就是摸清系统上已经安装部署了哪些应用和服务。
本文将以 CentOS7为例,详细介绍如何系统地排查已安装的应用和服务,包括它们的安装方式和安装位置。
1.查看系统基本信息
首先获取系统整体信息:
# 查看系统版本
cat /etc/centos-release# 查看内核版本
uname -a# 查看系统运行时间(判断是新系统还是长期运行的)
uptime# 查看系统资源使用情况
top
2.检查系统已安装的软件包
2.1 RPM包管理查询
CentOS使用RPM包管理系统,可通过以下命令查看:
# 列出所有已安装的rpm包
rpm -qa# 按安装时间排序查看(最近安装的排在前面)
rpm -qa --last# 查看某个具体文件的来源包
rpm -qf /path/to/file# 查看某个已安装包的详细信息
rpm -qi package_name# 查看某个包安装的文件列表
rpm -ql package_name
2.2YUM查询
# 列出所有已安装的软件包
yum list installed# 查看某个包的详细信息
yum info package_name# 查看哪些组已安装
yum grouplist
3.检查运行中的服务
3.1系统服务管理(Systemd)
# 列出所有已加载的服务单元
systemctl list-units --type=service# 列出所有服务(包括未运行的)
systemctl list-units --type=service --all# 查看某个服务的状态
systemctl status service_name# 查看开机启动项
systemctl list-unit-files --type=service | grep enabled
3.2检查网络服务
# 查看监听端口
netstat -tulnp
ss -tulnp# 查看防火墙规则
firewall-cmd --list-all
iptables -L -n
4.检查常见的应用安装位置
4.1标准目录检查
# 查看/usr/local目录(常见的手动安装位置)
ls -lh /usr/local# 查看/opt目录(第三方软件常见位置)
ls -lh /opt# 查看/etc目录(配置文件集中地)
ls -lh /etc# 查看/var目录(日志和运行数据)
ls -lh /var
4.2检查Web服务
# 检查Apache
httpd -v 2>/dev/null || apache2 -v 2>/dev/null# 检查Nginx
nginx -v 2>/dev/null# 检查Web根目录
grep -r "DocumentRoot" /etc/httpd /etc/apache2 /etc/nginx
4.3检查数据库服务
# MySQL/MariaDB
mysql --version 2>/dev/null
systemctl status mysqld mariadb# PostgreSQL
psql --version 2>/dev/null
systemctl status postgresql# MongoDB
mongo --version 2>/dev/null
systemctl status mongod
5.检查其他安装方式
5.1手动编译安装
# 检查/usr/local目录
ls -lh /usr/local# 检查环境变量PATH中的可执行文件
echo $PATH | tr ':' '\n' | xargs ls -lh
5.2容器化应用
# 检查Docker
docker --version 2>/dev/null
docker ps -a# 检查Podman
podman --version 2>/dev/null
podman ps -a
5.3其他包管理器
# 检查Python pip安装的包
pip list 2>/dev/null || pip3 list 2>/dev/null# 检查Node.js npm安装的包
npm list -g --depth=0 2>/dev/null
6.检查定时任务
# 系统级定时任务
ls -lh /etc/cron*# 用户级定时任务
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done
7.检查启动项
# 检查rc.local
cat /etc/rc.local# 检查profile和bashrc
grep -r "启动" /etc/profile /etc/bashrc /etc/profile.d/ ~/.bashrc ~/.bash_profile
通过以上系统化的排查,就基本可以掌握一台新 CentOS 服务器上安装的所有重要应用和服务。
建议:
1)先通过rpm/yum查看包管理系统记录
2)检查运行中的服务和监听端口
3)查看常见安装目录
4)检查各种启动项和定时任务
养成这种系统化的排查习惯,可以帮助我们快速熟悉任何新接手的Linux服务器环境。