梳理部署的服务以及需要关注的配置
日常运维中避免不掉会有不清楚的资产,工作交接或者长时间无人关注的系统,都会导致接手后一脸懵逼,通过以下常用命令可以快速梳理系统部署的服务以及关联关系。
建议通过终端连接后记录日志,在本地逐步进行关联分析,梳理拓扑图以及启停手册
一、磁盘相关
梳理清楚磁盘相关信息,避免开机无法正常启动,需要重点关注挂载的外部磁盘或者本地需要手动挂载磁盘
挂载情况
mount
磁盘空间
df -Th
查看磁盘自动挂载信息
cat /etc/fstab
二、进程相关
这部分主要梳理对外提供服务的进程和服务(netstat,通常这部分比较重要),未暴露的服务只能结合ps相关命令逐个分析确认,还可以通过readlink /proc/$pid/exe查看进程启动路径(pid为ps查询结果)
进程目录树
pstree
进程信息
ps -ef
java进程信息(不涉及可能会报错)
jps
侦听服务信息
netstat -anp | grep -i listen
三、开机启动
开机启动服务重点关注已经设置了开机启动或者定时计划的,未设置开机启动、定时计划且在运行的服务也应该重点进行梳理
检查开机启动服务
chkconfig --list
systemctl list-unit-files
查看开机执行命令
cat /etc/rc.local
查看定时计划
for user in $(cut -f 1 -d : /etc/passwd); do crontab -l -u $user 2>/dev/null | grep -q "[^#]"; if [ $? -eq 0 ]; then echo "User: $user"; crontab -l -u $user; echo "-------------------------"; fi; done
四、其他信息
以下关联的用户信息可以进一步协助排查是否有其他服务,比如mysql、oracle、rsync等;history也可以结合梳理需要重点关注或者前面环节疏漏的服务
查看用户信息
cat /etc/passwd
查看history(帮助确认维护常用命令、方式)
for user in $(cut -f 1 -d : /etc/passwd); do echo "User: $user"; sudo -u $user pwd; sudo -u $user cat ./.bash_history 2>/dev/null; echo "-------------------------"; done
系统启动时间
uptime
结合uptime和history可以相对准确定位用户启动需要手工干预的内容。
hosts信息查看
cat /etc/hosts
dns信息查看
cat /etc/resolv.conf
结合hosts和dns可以关联确认对应主机的关联关系,使用域名形式建立关联关系的一般依赖此部分服务。
以上用到的命令(未整理为shell,也可以整理成shell直接将结果重定向到文件中):
# 挂载情况
mount
# 磁盘空间
df -Th
# 查看磁盘自动挂载信息
cat /etc/fstab
# 进程目录树
pstree
# 进程信息
ps -ef
# java进程信息(不涉及可能会报错)
jps
# 侦听服务信息
netstat -anp | grep -i listen
# 检查开机启动服务
chkconfig --list
systemctl list-unit-files
# 查看开机执行命令
cat /etc/rc.local
# 查看定时计划
for user in $(cut -f 1 -d : /etc/passwd); do crontab -l -u $user 2>/dev/null | grep -q "[^#]"; if [ $? -eq 0 ]; then echo "User: $user"; crontab -l -u $user; echo "-------------------------"; fi; done
# 检查用户信息
cat /etc/passwd
# 查看history(帮助确认维护常用命令、方式)
for user in $(cut -f 1 -d : /etc/passwd); do echo "User: $user"; sudo -u $user pwd; sudo -u $user cat ./.bash_history 2>/dev/null; echo "-------------------------"; done
# 系统启动时间
uptime
# 查看hosts信息
cat /etc/hosts
#查看DNS信息
cat /etc/resolv.conf