为了在Linux系统中执行应急响应检查,可以编写一个脚本来收集系统的关键信息。以下是一个示例脚本,该脚本将检查系统日志、当前正在运行的进程、网络连接等,以便快速了解系统的当前状态和潜在的问题。
Linux应急响应检查脚本
以下脚本旨在收集系统信息,以便在出现问题时进行快速响应和分析。
#!/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
脚本解释
创建结果目录:
RESULT_DIR="/var/log/emergency_response" mkdir -p $RESULT_DIR
这段代码用于创建存储检查结果的目录。
收集系统基本信息:
uname -a > $RESULT_DIR/uname.txt df -h > $RESULT_DIR/df.txt free -m > $RESULT_DIR/meminfo.txt
这些命令分别收集系统信息、磁盘使用情况和内存使用情况。
收集进程信息:
ps aux > $RESULT_DIR/ps_aux.txt top -b -n 1 > $RESULT_DIR/top.txt
收集当前运行的所有进程信息和系统资源使用情况。
收集登录记录:
last > $RESULT_DIR/lastlog.txt who > $RESULT_DIR/who.txt
收集最近登录的用户信息和当前登录的用户信息。
收集网络连接信息:
netstat -tulnp > $RESULT_DIR/netstat.txt ss -tuln > $RESULT_DIR/ss.txt iptables -L > $RESULT_DIR/iptables.txt
获取当前的网络连接信息和防火墙规则。
收集运行中的服务:
systemctl list-units --type=service > $RESULT_DIR/services.txt
获取当前运行的服务列表。
收集计划任务:
crontab -l > $RESULT_DIR/crontab.txt ls -al /etc/cron* > $RESULT_DIR/cron_files.txt
获取用户的计划任务和系统的计划任务文件。
收集关键配置文件:
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
复制系统的关键配置文件,以便检查和备份。
收集系统日志:
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
通知检查完成并显示结果目录的内容。
思维导图
- Linux应急响应检查脚本
- 创建结果目录
- 收集系统基本信息
- uname
- df
- free
- 收集进程信息
- ps
- top
- 收集登录记录
- last
- who
- 收集网络连接信息
- netstat
- ss
- iptables
- 收集运行中的服务
- systemctl
- 收集计划任务
- crontab
- ls
- 收集关键配置文件
- cp
- 收集系统日志
- cp
- 汇总信息
通过这个脚本,可以快速收集系统的关键信息,有助于在发生问题时进行及时的应急响应和分析。