Linux基础教程 第14课:系统故障排查和恢复

浏览量:28 次 发布时间:2026-01-21 20:22 作者:明扬工控商城 下载docx

最近更新:Linux基础教程 第15课:Linux内核和驱动管理


好的,我们继续第十四课。今天学习Linux系统故障排查和恢复,这是系统管理员最重要的技能之一。


第一部分:故障排查方法论

1.1 系统化排查方法

故障排查遵循黄金法则:先观察,再思考,最后行动


六个排查步骤:


bash

# 1. 收集信息

# 2. 重现问题

# 3. 隔离问题

# 4. 分析原因

# 5. 实施解决方案

# 6. 验证和记录

常用诊断命令速查:


bash

# 系统信息

uname -a           # 内核版本

lsb_release -a     # 发行版信息

uptime             # 运行时间

w                  # 登录用户

who                # 登录会话


# 硬件信息

lscpu              # CPU信息

free -h            # 内存信息

df -h              # 磁盘空间

lspci              # PCI设备

lsusb              # USB设备

1.2 问题分类和优先级

bash

# P0级别:系统完全不可用

# 症状:无法启动、无法登录、所有服务不可用


# P1级别:核心服务不可用

# 症状:数据库、Web服务、网络服务异常


# P2级别:部分功能受影响

# 症状:某些应用异常,但系统基本可用


# P3级别:性能问题

# 症状:响应慢,但功能正常


# P4级别:告警和建议

# 症状:配置问题、安全警告

第二部分:启动故障排查

2.1 Linux启动流程详解

text

1. BIOS/UEFI -> 2. 引导加载器(GRUB) -> 3. 内核加载 -> 4. initramfs -> 5. systemd -> 6. 用户空间

2.2 GRUB故障修复

bash

# 情况1:GRUB完全损坏(黑屏或无引导菜单)

# 使用Live CD/USB修复:


# 1. 从Live系统启动

# 2. 挂载系统分区

sudo mount /dev/sda1 /mnt

sudo mount /dev/sda2 /mnt/boot  # 如果有单独的boot分区


# 3. Chroot到目标系统

sudo mount --bind /dev /mnt/dev

sudo mount --bind /proc /mnt/proc

sudo mount --bind /sys /mnt/sys

sudo chroot /mnt


# 4. 重新安装GRUB

grub-install /dev/sda

update-grub

exit


# 5. 卸载并重启

sudo umount /mnt/{dev,proc,sys,boot,}

2.3 内核参数调整

bash

# 在GRUB启动时编辑内核参数

# 按'e'进入编辑模式,在linux行末尾添加:


# 单用户模式(维护模式)

single

# 或

systemd.unit=rescue.target


# 紧急模式

systemd.unit=emergency.target


# 关闭SELinux/AppArmor

selinux=0

apparmor=0


# 修复文件系统

fsck.mode=force

fsck.repair=yes


# 禁用图形界面

systemd.unit=multi-user.target


# 内存调试

memtest=1

2.4 systemd启动问题

bash

# 查看启动失败的服务

systemctl --failed


# 查看启动过程

systemd-analyze time

systemd-analyze blame  # 按耗时排序

systemd-analyze critical-chain  # 关键路径


# 查看特定服务的依赖

systemctl list-dependencies nginx.service


# 重置失败的服务

systemctl reset-failed


# 调试启动过程

systemd.log_level=debug  # 添加到内核参数

journalctl -b  # 查看本次启动日志

journalctl -b -p err  # 只显示错误

第三部分:文件系统故障

3.1 文件系统检查和修复

bash

# 检查文件系统(必须先卸载)

sudo umount /dev/sda1

sudo fsck /dev/sda1


# 强制检查和自动修复(ext2/3/4)

sudo e2fsck -f -y -v /dev/sda1


# 修复xfs文件系统

sudo xfs_repair /dev/sda1


# 检查NTFS文件系统

sudo ntfsfix /dev/sda1


# 如果无法卸载根分区(在紧急模式或Live CD中操作)

# 1. 进入紧急模式

# 2. 重新挂载根分区为读写

mount -o remount,rw /


# 3. 运行fsck(需指定文件系统类型)

fsck.ext4 -f /dev/sda1

3.2 磁盘坏道检测

bash

# 检查磁盘健康状态(需要安装smartmontools)

sudo apt install smartmontools

sudo smartctl -a /dev/sda  # 显示所有信息

sudo smartctl -H /dev/sda  # 健康状态

sudo smartctl -t short /dev/sda  # 快速测试

sudo smartctl -t long /dev/sda   # 长测试


# 检查坏道(谨慎使用,会破坏数据)

sudo badblocks -v /dev/sda  # 只读检查

sudo badblocks -nvs /dev/sda  # 非破坏性读写测试

3.3 磁盘空间紧急清理

bash

# 快速查找大文件

# 方法1:按大小排序

sudo find / -type f -size +100M 2>/dev/null | xargs ls -lh


# 方法2:按目录统计

sudo du -ahx / 2>/dev/null | sort -rh | head -30


# 方法3:使用ncdu工具

sudo apt install ncdu

sudo ncdu /


# 清理系统日志

sudo journalctl --vacuum-size=100M  # 保留最近100MB

sudo journalctl --vacuum-time=30d   # 保留30天


# 清理包缓存

sudo apt clean

sudo apt autoremove --purge


# 清理临时文件

sudo rm -rf /tmp/*

sudo find /var/tmp -type f -atime +30 -delete


# 清理旧的内核版本(Ubuntu)

dpkg --list | grep linux-image

sudo apt purge linux-image-5.4.0-XX-generic  # 保留当前和最新的


# 清理Docker资源

docker system prune -a

第四部分:网络故障排查

4.1 网络问题诊断流程

bash

# 1. 检查网络接口状态

ip link show

# 如果接口为DOWN状态:

sudo ip link set eth0 up


# 2. 检查IP地址

ip addr show

# 如果没有IP:

sudo dhclient eth0  # DHCP获取

# 或手动设置:

sudo ip addr add 192.168.1.100/24 dev eth0

sudo ip route add default via 192.168.1.1


# 3. 测试本地网络

ping 127.0.0.1  # 本地回环

ping 192.168.1.1  # 网关


# 4. 测试DNS

nslookup google.com

# 如果DNS失败,检查/etc/resolv.conf

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf


# 5. 测试外部网络

ping 8.8.8.8  # Google DNS

ping google.com


# 6. 检查路由

ip route show

traceroute google.com

4.2 网络服务故障

bash

# 检查端口监听

ss -tulnp  # 推荐

netstat -tulnp  # 传统方法


# 如果服务端口未监听:

# 1. 检查服务是否运行

systemctl status nginx


# 2. 检查防火墙

sudo ufw status

sudo iptables -L -n


# 3. 检查SELinux/AppArmor

getenforce  # SELinux

sudo aa-status  # AppArmor


# 4. 检查配置文件

sudo nginx -t  # Nginx配置检查

sudo apache2ctl configtest  # Apache配置检查

sudo sshd -t  # SSH配置检查

4.3 网络性能问题

bash

# 检查网络带宽

iftop

nload


# 检查网络延迟

mtr google.com  # 持续跟踪


# 检查网络连接数

ss -s


# 检查网络错误

netstat -i

ip -s link


# 抓包分析(需要tcpdump)

sudo tcpdump -i eth0 -n port 80  # 抓取HTTP流量

sudo tcpdump -i eth0 host 192.168.1.100  # 抓取特定主机

第五部分:硬件故障排查

5.1 CPU和内存问题

bash

# 检查CPU状态

lscpu

cat /proc/cpuinfo

mpstat -P ALL 1  # 实时CPU使用


# 检查内存状态

free -h

cat /proc/meminfo

vmstat 1 5  # 虚拟内存统计


# 内存测试(需要memtester)

sudo apt install memtester

sudo memtester 1G 3  # 测试1GB内存,3次


# CPU压力测试

sudo apt install stress

stress --cpu 4 --timeout 60s  # 4个核心,60秒

5.2 硬件日志查看

bash

# 查看内核消息缓冲区

dmesg

dmesg -T  # 带时间戳

dmesg -l err,crit,alert,emerg  # 只显示错误


# 查看系统日志

journalctl -k  # 内核日志

journalctl --since "10 minutes ago"  # 最近10分钟


# 查看特定硬件日志

journalctl _TRANSPORT=kernel  # 内核消息

journalctl _TRANSPORT=driver  # 驱动消息


# 查看温度传感器

sudo apt install lm-sensors

sudo sensors-detect  # 检测传感器

sensors  # 显示温度

5.3 电源和RAID问题

bash

# 检查电源状态

sudo apt install acpi

acpi -V


# 检查RAID状态

cat /proc/mdstat  # 软件RAID

sudo megacli -LDInfo -Lall -aAll  # 硬件RAID(需要安装megacli)

sudo storcli /c0 show  # 另一种RAID工具


# 检查磁盘SMART状态

sudo smartctl -a /dev/sda | grep -E "(Reallocated|Pending|Uncorrectable)"

第六部分:服务和应用故障

6.1 服务故障排查

bash

# 查看服务状态

systemctl status servicename


# 查看详细日志

journalctl -u servicename -xe

journalctl -u servicename --since "1 hour ago"


# 服务调试模式

# 修改服务文件,添加:

# Environment=SYSTEMD_LOG_LEVEL=debug


# 手动测试服务

sudo -u www-data /usr/sbin/nginx -g "daemon off;"  # Nginx

sudo -u mysql /usr/sbin/mysqld --verbose --help  # MySQL

6.2 数据库故障

bash

# MySQL故障排查

sudo tail -f /var/log/mysql/error.log

mysqlcheck --all-databases --check-upgrade --auto-repair

mysql_upgrade -u root -p


# PostgreSQL故障排查

sudo tail -f /var/log/postgresql/postgresql-14-main.log

sudo -u postgres psql -c "SELECT * FROM pg_stat_activity;"

sudo -u postgres psql -c "VACUUM ANALYZE;"


# Redis故障排查

redis-cli info

redis-cli monitor  # 实时查看命令

redis-cli --stat  # 统计信息

6.3 Web服务器故障

bash

# Nginx故障

sudo nginx -t  # 测试配置

sudo tail -f /var/log/nginx/error.log

nginx -V  # 查看编译参数


# Apache故障

sudo apache2ctl configtest

sudo tail -f /var/log/apache2/error.log

apache2ctl -M  # 查看加载的模块


# PHP故障

php -m  # 查看PHP模块

php -i | grep error  # 查看错误设置

sudo tail -f /var/log/php8.1-fpm.log

第七部分:安全事件响应

7.1 入侵检测步骤

bash

# 第一步:立即取证

# 不要关机!先收集证据


# 查看当前登录用户

w

last

who -a


# 检查异常进程

ps aux --sort=-%cpu | head -20

ps aux --sort=-%mem | head -20

pstree -ap


# 检查网络连接

ss -tulnp

sudo lsof -i


# 检查最近修改的文件

find / -type f -mtime -1 2>/dev/null | head -20

find /etc -type f -mtime -1 2>/dev/null


# 检查计划任务

crontab -l

ls -la /etc/cron*

cat /etc/crontab


# 检查启动项

ls -la /etc/init.d/

ls -la /etc/systemd/system/

systemctl list-unit-files | grep enabled


# 检查sudo权限

sudo grep -v '^#\|^$' /etc/sudoers

ls -la /etc/sudoers.d/

7.2 恶意软件检测

bash

# 安装安全扫描工具

sudo apt install chkrootkit rkhunter lynis


# 扫描rootkit

sudo chkrootkit

sudo rkhunter --check --sk


# 系统安全审计

sudo lynis audit system


# 病毒扫描

sudo apt install clamav

sudo freshclam  # 更新病毒库

sudo clamscan -r /home --bell


# 查找隐藏进程(/proc目录扫描)

ls -la /proc/*/exe 2>/dev/null | grep deleted

7.3 应急响应措施

bash

# 1. 隔离系统

sudo iptables -A INPUT -s 0.0.0.0/0 -j DROP

sudo ip link set eth0 down


# 2. 取证备份

sudo dd if=/dev/sda of=/evidence/sda.img bs=4M status=progress

sudo tar -czvf /evidence/logs.tar.gz /var/log


# 3. 分析时间线

sudo apt install log2timeline plaso

log2timeline.py /evidence/timeline.plaso /dev/sda1


# 4. 清理和恢复

# 根据分析结果清除恶意文件

# 修改被篡改的配置

# 重置密码和密钥


# 5. 加固系统

sudo apt update && sudo apt upgrade

sudo ufw enable

sudo fail2ban-client set sshd banip 192.168.1.100

第八部分:数据恢复技术

8.1 文件恢复

bash

# 使用extundelete恢复ext文件系统文件

sudo apt install extundelete

sudo umount /dev/sda1

sudo extundelete /dev/sda1 --restore-all


# 使用testdisk恢复分区和文件

sudo apt install testdisk

sudo testdisk  # 交互式界面

# 选择分区 -> Analyse -> Quick Search -> Write


# 使用photorec恢复文件(testdisk的一部分)

sudo photorec  # 交互式界面


# 使用scalpel恢复特定文件类型

sudo apt install scalpel

sudo cp /etc/scalpel/scalpel.conf /etc/scalpel/scalpel.conf.bak

sudo vim /etc/scalpel/scalpel.conf  # 取消注释需要的文件类型

sudo scalpel /dev/sda1 -o /recovery

8.2 分区恢复

bash

# 查看丢失的分区

sudo fdisk -l /dev/sda


# 使用gpart恢复分区表

sudo apt install gpart

sudo gpart /dev/sda


# 使用parted恢复分区

sudo parted /dev/sda rescue


# 手动恢复MBR

sudo dd if=/dev/sda of=/backup/mbr.backup bs=512 count=1  # 备份MBR

sudo dd if=/backup/mbr.backup of=/dev/sda bs=512 count=1   # 恢复MBR

8.3 数据库恢复

bash

# MySQL恢复

# 从备份恢复

mysql -u root -p database < backup.sql


# 从binlog恢复

mysqlbinlog /var/log/mysql/mysql-bin.000001 | mysql -u root -p


# PostgreSQL恢复

# 从dump恢复

pg_restore -U postgres -d database backup.dump


# 从WAL恢复

sudo -u postgres pg_resetwal /var/lib/postgresql/14/main/

第九部分:备份和恢复策略

9.1 创建系统备份

bash

# 完整系统备份(使用tar)

sudo tar -czpvf /backup/full-backup-$(date +%Y%m%d).tar.gz \

   --exclude=/backup \

   --exclude=/proc \

   --exclude=/sys \

   --exclude=/dev \

   --exclude=/run \

   --exclude=/tmp \

   --exclude=/mnt \

   --exclude=/media \

   --exclude=/lost+found \

   /


# 增量备份(使用rsync)

sudo rsync -av --delete --link-dest=/backup/latest /home/ /backup/incremental/$(date +%Y%m%d)

ln -sf /backup/incremental/$(date +%Y%m%d) /backup/latest


# 磁盘镜像备份

sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress

9.2 自动化备份脚本

bash

#!/bin/bash

# backup_system.sh


# 配置

BACKUP_DIR="/backup"

RETENTION_DAYS=30

DATE=$(date +%Y%m%d_%H%M%S)

LOG_FILE="/var/log/backup.log"


# 日志函数

log() {

   echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> "$LOG_FILE"

}


# 检查备份目录

mkdir -p "$BACKUP_DIR"

if [ ! -d "$BACKUP_DIR" ]; then

   log "错误: 无法创建备份目录 $BACKUP_DIR"

   exit 1

fi


# 开始备份

log "=== 开始系统备份 ==="


# 1. 备份重要配置文件

log "备份配置文件..."

tar -czf "$BACKUP_DIR/etc-backup-$DATE.tar.gz" /etc 2>>"$LOG_FILE"


# 2. 备份数据库

log "备份MySQL数据库..."

mysqldump --all-databases --single-transaction > "$BACKUP_DIR/mysql-backup-$DATE.sql" 2>>"$LOG_FILE"


# 3. 备份用户数据

log "备份用户数据..."

tar -czf "$BACKUP_DIR/home-backup-$DATE.tar.gz" /home 2>>"$LOG_FILE"


# 4. 备份Web数据

if [ -d "/var/www" ]; then

   log "备份Web数据..."

   tar -czf "$BACKUP_DIR/www-backup-$DATE.tar.gz" /var/www 2>>"$LOG_FILE"

fi


# 清理旧备份

log "清理 $RETENTION_DAYS 天前的备份..."

find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete

find "$BACKUP_DIR" -name "*.sql" -mtime +$RETENTION_DAYS -delete


# 验证备份

log "验证备份..."

for file in "$BACKUP_DIR"/*-$DATE.*; do

   if [ -f "$file" ]; then

       if tar -tzf "$file" >/dev/null 2>&1; then

           log "验证成功: $file"

       else

           log "验证失败: $file"

       fi

   fi

done


log "备份完成"

log "磁盘使用情况: $(df -h $BACKUP_DIR | tail -1)"

9.3 灾难恢复演练

bash

#!/bin/bash

# disaster_recovery_drill.sh


echo "=== 灾难恢复演练 ==="

echo "这个脚本将模拟系统故障并恢复"

echo


read -p "请确认已在测试环境执行 [y/N]: " confirm

if [ "$confirm" != "y" ]; then

   echo "取消"

   exit 1

fi


# 创建测试环境

TEST_DIR="/tmp/recovery_test"

mkdir -p "$TEST_DIR"


echo "1. 模拟配置文件损坏"

sudo cp -r /etc "$TEST_DIR/etc_original"

sudo rm -f "$TEST_DIR/etc_original/hostname"


echo "2. 模拟数据库损坏"

sudo mysql -e "CREATE DATABASE IF NOT EXISTS test_recovery"

sudo mysql test_recovery -e "CREATE TABLE test (id INT, data VARCHAR(100))"

sudo mysql test_recovery -e "INSERT INTO test VALUES (1, 'test data')"


echo "3. 执行备份"

./backup_system.sh


echo "4. 模拟灾难"

sudo mv /etc/hostname /etc/hostname.bak

sudo mysql -e "DROP DATABASE test_recovery"


echo "5. 开始恢复"

echo "恢复配置文件..."

sudo tar -xzf /backup/etc-backup-*.tar.gz -C /


echo "恢复数据库..."

latest_sql=$(ls -t /backup/mysql-backup-*.sql | head -1)

sudo mysql < "$latest_sql"


echo "6. 验证恢复"

if [ -f /etc/hostname ]; then

   echo "✓ 配置文件恢复成功"

else

   echo "✗ 配置文件恢复失败"

fi


mysql -e "SHOW DATABASES LIKE 'test_recovery'" | grep -q test_recovery

if [ $? -eq 0 ]; then

   echo "✓ 数据库恢复成功"

else

   echo "✗ 数据库恢复失败"

fi


echo

echo "演练完成"

第十部分:故障排查工具箱

10.1 必备工具安装

bash

# 安装诊断工具集

sudo apt install -y \

   htop iotop iftop nload \

   net-tools dnsutils traceroute \

   sysstat lsof strace ltrace \

   gdb pstack \

   nmap tcpdump wireshark \

   smartmontools lm-sensors \

   testdisk photorec \

   chkrootkit rkhunter lynis \

   tree ncdu \

   jq yq \

   python3-pip

10.2 自定义诊断脚本

bash

#!/bin/bash

# system_health_check.sh


echo "====== 系统健康检查报告 ======"

echo "检查时间: $(date)"

echo "主机名: $(hostname)"

echo


echo "=== 系统信息 ==="

echo "发行版: $(lsb_release -d | cut -f2)"

echo "内核版本: $(uname -r)"

echo "运行时间: $(uptime)"

echo


echo "=== 硬件状态 ==="

echo "CPU负载: $(uptime | awk -F'load average:' '{print $2}')"

echo "内存使用: $(free -h | awk '/Mem:/ {printf "%s/%s (%.1f%%)", $3, $2, $3/$2*100}')"

echo "磁盘使用:"

df -h | awk 'NR>1 && $5+0 > 80 {print "  警告: " $1 " 使用率 " $5}'

df -h | awk 'NR>1 && $5+0 <= 80 {print "  正常: " $1 " 使用率 " $5}'

echo


echo "=== 服务状态 ==="

echo "失败的服务:"

systemctl --failed | grep -A 100 "units listed"

echo


echo "=== 网络状态 ==="

echo "网络接口:"

ip -br addr show

echo


echo "=== 安全状态 ==="

echo "失败的SSH登录:"

sudo grep "Failed password" /var/log/auth.log 2>/dev/null | tail -5 || echo "   无失败记录"

echo "root登录记录:"

sudo grep "Accepted.*root" /var/log/auth.log 2>/dev/null | tail -3 || echo "   无root登录"

echo


echo "=== 检查完成 ==="

10.3 实时监控面板

bash

#!/bin/bash

# live_monitor.sh


# 颜色定义

RED='\033[0;31m'

GREEN='\033[0;32m'

YELLOW='\033[1;33m'

NC='\033[0m' # No Color


clear

echo -e "${GREEN}=== 系统实时监控 ===${NC}"

echo "按 Ctrl+C 退出"

echo


while true; do

   echo -e "\033[H"  # 光标移动到左上角

   

   # 系统信息

   echo -e "${YELLOW}系统信息${NC}"

   echo "时间: $(date '+%Y-%m-%d %H:%M:%S')"

   echo "运行: $(uptime -p)"

   echo "负载: $(cat /proc/loadavg)"

   echo

   

   # CPU和内存

   echo -e "${YELLOW}CPU和内存${NC}"

   echo "CPU: $(top -bn1 | grep "Cpu(s)" | awk '{print $2 "%us " $4 "%sy " $6 "%id"}')"

   mem=$(free -m | awk 'NR==2{printf "%.1f%%", $3*100/$2}')

   echo "内存: $mem"

   echo

   

   # 磁盘

   echo -e "${YELLOW}磁盘使用${NC}"

   df -h / | awk 'NR==2{print "根分区: "$3"/"$2" ("$5")"}'

   echo

   

   # 网络

   echo -e "${YELLOW}网络连接${NC}"

   echo "TCP连接: $(ss -t | wc -l)"

   echo

   

   # 进程

   echo -e "${YELLOW}TOP进程${NC}"

   echo "CPU前5:"

   ps aux --sort=-%cpu | head -6 | tail -5 | awk '{printf "  %-10s %-5s %s\n", $1, $3"%", $11}'

   echo

   echo "内存前5:"

   ps aux --sort=-%mem | head -6 | tail -5 | awk '{printf "  %-10s %-5s %s\n", $1, $4"%", $11}'

   

   sleep 2

done

第十一部分:练习项目

项目1:模拟和解决系统故障

创建以下故障场景并解决:


GRUB损坏:删除/boot/grub/grub.cfg,然后修复


文件系统损坏:使用dd破坏文件系统头,然后修复


网络故障:配置错误的静态IP和网关,然后排查


服务故障:修改Nginx配置使其无法启动,然后修复


权限问题:更改关键文件权限,导致系统异常


项目2:创建监控告警系统

实现一个完整的监控系统:


收集系统指标(CPU、内存、磁盘、网络)


设置阈值告警


实现自动恢复脚本


创建监控仪表板


配置邮件/短信告警


项目3:设计备份恢复方案

为一个生产环境设计备份策略:


确定备份内容和频率


选择备份工具和方法


制定恢复流程


定期进行恢复演练


文档化整个方案


项目4:安全事件响应演练

模拟安全事件并响应:


模拟SSH暴力破解


模拟Web应用攻击


模拟恶意软件感染


执行应急响应步骤


撰写事件报告


今日总结

今天我们学习了Linux系统故障排查和恢复:


故障排查方法论:系统化的问题解决流程


启动故障:GRUB修复、内核参数、救援模式


文件系统故障:检查、修复、数据恢复


网络故障:连接、服务、性能问题


硬件故障:CPU、内存、磁盘诊断


服务故障:系统服务、数据库、应用问题


安全响应:入侵检测、恶意软件、应急措施


数据恢复:文件、分区、数据库恢复技术


备份策略:备份方法、自动化、恢复演练


工具箱:必备工具、诊断脚本、监控面板


关键原则:


保持冷静:不要慌张,按步骤排查


先备份再操作:重要操作前先备份数据


记录一切:记录所有操作和现象


最小化变更:一次只改变一个变量


验证结果:每个步骤后验证效果


总结经验:记录问题和解决方案


故障排查是经验的积累,遇到问题时不要害怕,每次解决问题的过程都是学习的机会。


有问题吗?完成练习项目后,我们可以继续第十五课:Linux内核和驱动管理。


明扬工控商城

推荐阅读:

Linux基础教程 第20课:Linux安全攻防和渗透测试基础

Linux基础教程 第19课:性能调优和容量规划

Linux基础教程 第18课:Linux云计算基础

Linux基础教程 第17课:自动化运维工具

Linux基础教程 第16课:集群和高可用性

Linux基础教程 第15课:Linux内核和驱动管理

热门标签:
Linux基础教程 第14课:系统故障排查和恢复.docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网