前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维:Linux服务器崩了怎么办,快来看看这份”急救命令指南“吧!

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

原创
作者头像
IT技术分享社区
发布2024-05-07 08:50:38
2600
发布2024-05-07 08:50:38
举报
文章被收录于专栏:运维运维

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

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

1、SSH登录用户层面排查

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

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

代码语言:javascript
复制
grep :0 /etc/passwd

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

代码语言:javascript
复制
stat /etc/passwd

检查有SSH登录权限的用户

代码语言:javascript
复制
cat /etc/passwd | grep bash

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

代码语言:javascript
复制
last -n 10 

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

代码语言:javascript
复制
awk -F: 'length($2)==0 {print $1}' /etc/passwd

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

代码语言:javascript
复制
awk '/\$1|\$6/{print $1}' /etc/shadow

2、历史命令排查

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

代码语言:javascript
复制
cat ~/.bash_history 

3、网络排查

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

查看本机开放的端口信息

代码语言:javascript
复制
netstat -antulp 
ss -antulp 
lsof -i

查看当前已建立的 TCP 连接

代码语言:javascript
复制
netstat -antulp | grep ESTABLISHED

查看 DNS 配置信息:

代码语言:javascript
复制
cat /etc/resolv.conf

4、进程排查

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

查看资源占用

代码语言:javascript
复制
top 

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

查看所有进程

代码语言:javascript
复制
ps -ef

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

代码语言:javascript
复制
lsof -p PID

查看进程的启动时间

代码语言:javascript
复制
ps -p PID -o lstart

查看进程树

代码语言:javascript
复制
pstree

5、 文件排查

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

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

代码语言:javascript
复制
find / -mtime -2

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

代码语言:javascript
复制
find /home/ -mtime -1 -name *.sh

6、持久化排查

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

定时任务排查

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

代码语言:javascript
复制
crontab -l

开机启动项排查

查看系统服务

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

代码语言:javascript
复制
systemctl list-unit-files --type=service

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

代码语言:javascript
复制
systemctl list-units --type=service --all

7、日志文件排查

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

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

查看日志配置文件存放目录 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/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、SSH登录用户层面排查
  • 2、历史命令排查
  • 3、网络排查
  • 4、进程排查
  • 5、 文件排查
  • 6、持久化排查
  • 7、日志文件排查
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档