运维:Linux服务器崩了怎么办,快来看看这份”急救命令指南“吧!

简介: 当服务器出现问题,如崩溃、内存耗尽或CPU使用率过高时,运维工程师需要保持冷静,并通过一系列Shell命令来诊断和解决。首先,检查是否有异常SSH登录活动,查看`/etc/passwd`和`.bash_history`文件,以及用户最近的登录信息。接着,监控网络连接和端口,使用`netstat`和`lsof`命令找出资源占用高的进程,并查看进程启动时间和详细信息。同时,排查可能的恶意文件,检查定时任务和服务配置以确保没有异常启动项。最后,分析系统日志,如`/var/log`目录下的各种日志文件,找出潜在问题。通过这些步骤,可以有效定位和解决服务器故障。


image.png

作为运维工程师来说,最怕遇到服务器崩了、内存爆了、CPU满了等情况,尤其对于生产环境来说影响是非常巨大的。对于运维工程师来说可能面临被“炒鱿鱼”的风险。那么遇到这种情况怎么办呢,首先是要沉着冷静,然后按照下面的Shell命令来排查服务器本身的问题。

通过系统运行状态、安全设备告警,主机异常现象来发现可疑现象通常的可疑现象有:资源占用、异常登录、异常文件、异常连接、异常进程等。

1、SSH登录用户层面排查

通过日志如果发现有异常用户活动,比如:尝试多次登录失败、执行不正常的命令等,那么有可能你的服务器正在被攻击,这个时候应该及时采取限制SSH用户措施,包括禁止用户登录、立即修改用户密码等。

           1.    查看 uid 或 gid 为 0 的用户(默认系统只存在root一个特权账户)

grep :0 /etc/passwd

image.png

查看 passwd 文件的最后修改记录,确认近期是否有人修改过登录密码

stat /etc/passwd

检查有SSH登录权限的用户

cat /etc/passwd | grep bash

image.png

查看用户登录最近10条登录信息

last -n 10

image.png

查看空口令的用户,及时清理或者设置密码

awk -F: 'length($2)==0 {print $1}' /etc/passwd

查看可以远程登录的帐号信息

awk '/\$1|\$6/{print $1}' /etc/shadow

image.png

2、历史命令排查

通过历史执行命令,可以确认是否有可疑的执行命令。history 记录位于用户 home 目录下的 .bash_history 文件中,命令如下:

cat ~/.bash_history

image.png

3、网络排查

检查系统上正在监听的网络连接和端口情况,以及用户的网络活动,排查可能存在异常的网络行为。

查看本机开放的端口信息

netstat -antulp 
ss -antulp 
lsof -i

image.png

查看当前已建立的 TCP 连接

netstat -antulp | grep ESTABLISHED

image.png

查看 DNS 配置信息:

cat /etc/resolv.conf

image.png

4、进程排查

Linux 默认的进程权限分离,每个进程有不同的权限,所以从进程用户名上能给我们很多信息。比如 webshell 执行反弹连接,会显示 apache 的用户权限。

查看资源占用

top

image.png

然后使用组合键shift+m 按照内存排序,方便排查问题

image.png

查看所有进程

ps -ef

image.png

根据进程 PID 查看进程详细信息

lsof -p PID

查看进程的启动时间

ps -p PID -o lstart

查看进程树

pstree

image.png

           5、    文件排查

通过文件排查确认近期是否有恶意脚本等文件写入服务器。

查找根目录下,修改时间小于2天的文件

find / -mtime -2

查找home目录下修改时间小于1天的sh文件

find /home/ -mtime -1 -name *.sh

6、持久化排查

Linux的持久化方式包括定时任务、开机服务、开机启动、驱动加载。通过该命令确认是否存在异常的开机启动项、定时任务等等。

定时任务排查

列出当前用户的定时任务列表:

crontab -l

image.png

开机启动项排查

查看系统服务

查看所有系统服务的状态和启动方式

systemctl list-unit-files --type=service

image.png

查看当前正在运行的服务,用来分析是否有不正常的服务运行

systemctl list-units --type=service --all

image.png

7、日志文件排查

Linux系统 使用 rsyslog 管理日志,包括系统登录日志、服务访问日志、网站日志、数据库日志等。

日志默认存放位置 /var/log/ 目录,

image.png

查看日志配置文件存放目录 vim /etc/rsyslog.conf

常见的日志文件如下:

/var/log/messages:内核及公共消息日志,会记录linux系统的绝大多数重要信息

/var/log/cron:系统定时任务相关的日志

/var/log/dmesg:系统引导日志,系统在开机时内核自检的信息,dmesg命令直接查看

/var/log/boot.log:记录系统在引导过程中发生的,包含系统启动时的日志,包括自启动的服务

/var/log/secure:用户验证相关的安全性事件,如SSH登录,su切换用户,sudo授权等

/var/run/utmp:正在登录系统的用户信息,默认由who和w记录当前登录用户的信息

/var/log/wtmp:当前登录用户详细信息,二进制文件,使用last命令来查看

/var/log/btmp:记录错误登录日志,二进制文件,使用lastb命令查看

/var/log/lastlog:用户最后一次登录时间的日志,二进制文件,使用lastlog命令查看

 /var/log/maillog:邮件系统日志

服务器高频安装服务的默认日志路径:

Nginx日志:

/var/log/nginx/access.log

Apache日志:

/var/log/httpd/access.log

/var/log/apache/ access.log

/var/log/apache2/ access.log

/var/log/httpd-access.log

Mysql日志:

/var/log/mysql/

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
4月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
558 1
二、Linux文本处理与文件操作核心命令
|
4月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
359 137
|
4月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
838 57
|
3月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
705 2
|
4月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
405 0
Linux内存问题排查命令详解
|
4月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
423 16
|
5月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
6月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
1250 13
|
6月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
676 17
|
5月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
620 0