linux应急响应检查脚本

发布于:2025-06-07 ⋅ 阅读:(19) ⋅ 点赞:(0)

以下脚本旨在收集系统信息,以便在出现问题时进行快速响应和分析。

#!/bin/bash

# 创建结果目录
RESULT_DIR="/var/log/emergency_response"
mkdir -p $RESULT_DIR

# 收集系统基本信息
echo "收集系统基本信息..."
uname -a > $RESULT_DIR/uname.txt
df -h > $RESULT_DIR/df.txt
free -m > $RESULT_DIR/meminfo.txt

# 收集进程信息
echo "收集进程信息..."
ps aux > $RESULT_DIR/ps_aux.txt
top -b -n 1 > $RESULT_DIR/top.txt

# 收集登录记录
echo "收集登录记录..."
last > $RESULT_DIR/lastlog.txt
who > $RESULT_DIR/who.txt

# 收集网络连接信息
echo "收集网络连接信息..."
netstat -tulnp > $RESULT_DIR/netstat.txt
ss -tuln > $RESULT_DIR/ss.txt
iptables -L > $RESULT_DIR/iptables.txt

# 收集运行中的服务
echo "收集运行中的服务..."
systemctl list-units --type=service > $RESULT_DIR/services.txt

# 收集计划任务
echo "收集计划任务..."
crontab -l > $RESULT_DIR/crontab.txt
ls -al /etc/cron* > $RESULT_DIR/cron_files.txt

# 收集关键配置文件
echo "收集关键配置文件..."
cp /etc/passwd $RESULT_DIR/passwd.txt
cp /etc/shadow $RESULT_DIR/shadow.txt
cp /etc/group $RESULT_DIR/group.txt
cp /etc/hosts $RESULT_DIR/hosts.txt

# 收集系统日志
echo "收集系统日志..."
cp /var/log/syslog $RESULT_DIR/syslog.txt 2>/dev/null
cp /var/log/messages $RESULT_DIR/messages.txt 2>/dev/null
cp /var/log/auth.log $RESULT_DIR/auth.log 2>/dev/null
cp /var/log/secure $RESULT_DIR/secure.txt 2>/dev/null

# 汇总信息
echo "应急响应检查完成,结果保存在 $RESULT_DIR"

# 显示结果目录内容
ls -al $RESULT_DIR
​

脚本解释

  1. 创建结果目录

    RESULT_DIR="/var/log/emergency_response"
    mkdir -p $RESULT_DIR

    这段代码用于创建存储检查结果的目录。

  2. 收集系统基本信息

    uname -a > $RESULT_DIR/uname.txt
    df -h > $RESULT_DIR/df.txt
    free -m > $RESULT_DIR/meminfo.txt

    这些命令分别收集系统信息、磁盘使用情况和内存使用情况。

  3. 收集进程信息

    ps aux > $RESULT_DIR/ps_aux.txt
    top -b -n 1 > $RESULT_DIR/top.txt

    收集当前运行的所有进程信息和系统资源使用情况。

  4. 收集登录记录

    last > $RESULT_DIR/lastlog.txt
    who > $RESULT_DIR/who.txt

    收集最近登录的用户信息和当前登录的用户信息。

  5. 收集网络连接信息

    netstat -tulnp > $RESULT_DIR/netstat.txt
    ss -tuln > $RESULT_DIR/ss.txt
    iptables -L > $RESULT_DIR/iptables.txt

    获取当前的网络连接信息和防火墙规则。

  6. 收集运行中的服务

    systemctl list-units --type=service > $RESULT_DIR/services.txt

    获取当前运行的服务列表。

  7. 收集计划任务

    crontab -l > $RESULT_DIR/crontab.txt
    ls -al /etc/cron* > $RESULT_DIR/cron_files.txt
    ​
    

    获取用户的计划任务和系统的计划任务文件。

  8. 收集关键配置文件

    cp /etc/passwd $RESULT_DIR/passwd.txt
    cp /etc/shadow $RESULT_DIR/shadow.txt
    cp /etc/group $RESULT_DIR/group.txt
    cp /etc/hosts $RESULT_DIR/hosts.txt

    复制系统的关键配置文件,以便检查和备份。

  9. 收集系统日志

    cp /var/log/syslog $RESULT_DIR/syslog.txt 2>/dev/null
    cp /var/log/messages $RESULT_DIR/messages.txt 2>/dev/null
    cp /var/log/auth.log $RESULT_DIR/auth.log 2>/dev/null
    cp /var/log/secure $RESULT_DIR/secure.txt 2>/dev/null

    复制系统日志文件,以便进一步分析。

  10. 汇总信息

    echo "应急响应检查完成,结果保存在 $RESULT_DIR"
    ls -al $RESULT_DIR

    通知检查完成并显示结果目录的内容。