本文整理了 Linux 系统管理、网络配置、性能优化和安全加固的全面参考资料,适合系统管理员和运维工程师日常使用。
一、系统监控与性能分析
1. 实时监控命令
# 系统整体监控
top # 经典系统监控工具
htop # 增强版top(需安装)
atop # 高级监控工具
glances # 综合监控工具
# 内存监控
free -h # 查看内存使用情况
vmstat 1 # 每秒输出一次系统状态
# CPU监控
mpstat 1 # CPU统计信息
sar -u 1 # 系统活动报告
# 磁盘I/O监控
iostat -x 1 # 磁盘I/O统计
iotop # 磁盘I/O进程监控
sar -b 1 # I/O活动统计
# 网络监控
nethogs # 按进程监控网络流量
iftop # 实时网络带宽监控
bmon # 网络带宽监控工具
2. 系统信息查看
# 硬件信息
lscpu # CPU架构信息
lsblk # 块设备信息
lspci # PCI设备信息
lsusb # USB设备信息
# 系统信息
uname -a # 系统内核信息
hostnamectl # 主机名和信息
cat /etc/os-release # 系统版本信息
# 内存信息
cat /proc/meminfo # 详细内存信息
cat /proc/cpuinfo # 详细CPU信息
# 内核参数
sysctl -a # 查看所有内核参数
3. 日志分析
# 常用日志文件
/var/log/messages # 系统主日志文件
/var/log/syslog # 系统日志
/var/log/auth.log # 认证日志
/var/log/secure # 安全日志(RedHat系)
/var/log/dmesg # 内核日志
# 日志分析命令
tail -f /var/log/messages # 实时跟踪日志
grep "error" /var/log/messages # 搜索错误信息
journalctl -f # systemd日志实时查看
journalctl --since "2023-01-01" --until "2023-01-02"
journalctl -u nginx.service # 查看特定服务日志
二、磁盘与文件系统管理
1. 磁盘分区与管理
# 磁盘分区
fdisk -l # 查看分区表
parted -l # 查看分区信息
cfdisk # 交互式分区工具
# 文件系统创建
mkfs.ext4 /dev/sdb1 # 创建ext4文件系统
mkfs.xfs /dev/sdb2 # 创建XFS文件系统
# 磁盘检查修复
fsck /dev/sda1 # 检查修复文件系统
xfs_repair /dev/sdb2 # 修复XFS文件系统
# 磁盘挂载
mount /dev/sdb1 /mnt/data # 挂载磁盘
umount /mnt/data # 卸载磁盘
# 自动挂载配置
blkid # 查看磁盘UUID
# 编辑 /etc/fstab 添加自动挂载
2. LVM 逻辑卷管理
# 物理卷管理
pvcreate /dev/sdb # 创建物理卷
pvdisplay # 显示物理卷
# 卷组管理
vgcreate vg_data /dev/sdb # 创建卷组
vgdisplay # 显示卷组
# 逻辑卷管理
lvcreate -L 100G -n lv_data vg_data # 创建逻辑卷
lvdisplay # 显示逻辑卷
# 扩展逻辑卷
lvextend -L +50G /dev/vg_data/lv_data # 扩展逻辑卷
resize2fs /dev/vg_data/lv_data # 调整文件系统大小
3. RAID 阵列管理
# 创建RAID阵列
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# RAID管理
mdadm --detail /dev/md0 # 查看RAID详情
mdadm --stop /dev/md0 # 停止RAID阵列
mdadm --assemble /dev/md0 # 重新组装RAID
# 监控RAID状态
cat /proc/mdstat # 查看RAID状态
三、网络配置与诊断
1. 网络配置
# 网络接口配置
ip addr show # 显示IP地址
ip link show # 显示网络接口
# 路由配置
ip route show # 显示路由表
ip route add default via 192.168.1.1 # 添加默认路由
# 网络绑定(Bonding)
# 编辑 /etc/network/interfaces 或 /etc/sysconfig/network-scripts/
2. 网络诊断工具
# 连通性测试
ping example.com # ICMP连通性测试
traceroute example.com # 路由跟踪
mtr example.com # 增强版路由跟踪
# 端口扫描
nmap example.com # 基本扫描
nmap -p 1-1000 example.com # 指定端口范围扫描
nmap -A example.com # 激进扫描
# 网络统计
netstat -tuln # 监听端口
ss -tuln # 新式监听端口查看
netstat -s # 网络统计信息
# 带宽测试
iperf3 -s # 服务器端
iperf3 -c server_ip # 客户端
3. 网络性能优化
# 内核网络参数优化
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
# 连接跟踪优化
sysctl -w net.netfilter.nf_conntrack_max=1000000
四、系统安全与加固
1. 用户与权限管理
# 用户管理
useradd username # 添加用户
passwd username # 设置密码
usermod -aG groupname username # 添加用户到组
# 权限管理
chmod 600 filename # 设置文件权限
chown user:group filename # 更改文件所有者
# Sudo配置
visudo # 编辑sudo配置
2. SSH 安全配置
# SSH服务器配置(/etc/ssh/sshd_config)
Port 2222 # 更改默认端口
PermitRootLogin no # 禁止root登录
PasswordAuthentication no # 禁用密码认证
AllowUsers username # 只允许特定用户
# SSH密钥管理
ssh-keygen -t rsa # 生成密钥对
ssh-copy-id user@host # 部署公钥
3. 系统审计与监控
# 审计工具配置
auditctl -l # 查看审计规则
aureport -l # 生成审计报告
# 文件完整性检查
aide # 高级入侵检测环境
tripwire # 文件完整性检查工具
# 进程监控
psad # 端口扫描检测
fail2ban # 防止暴力破解
五、备份与恢复
1. 文件备份
# tar备份
tar -czvf backup-$(date +%Y%m%d).tar.gz /path/to/backup
# rsync同步
rsync -avz --delete source/ user@host:destination/
# dd完整磁盘备份
dd if=/dev/sda of=/backup/sda.img bs=4M
# 增量备份
rsnapshot # 基于rsync的增量备份工具
2. 数据库备份
# MySQL备份
mysqldump -u root -p --all-databases > full-backup.sql
# PostgreSQL备份
pg_dumpall > full-backup.sql
# MongoDB备份
mongodump --out /backup/mongodb-$(date +%Y%m%d)
3. 恢复策略
# 文件恢复
tar -xzvf backup.tar.gz -C /restore/path
# MySQL恢复
mysql -u root -p < full-backup.sql
# 磁盘恢复
dd if=/backup/sda.img of=/dev/sda bs=4M
六、容器与虚拟化
1. Docker 容器管理
# 容器生命周期
docker run -d --name myapp nginx:latest
docker stop myapp
docker start myapp
docker restart myapp
docker rm myapp
# 容器监控
docker stats
docker logs myapp
docker inspect myapp
# 资源限制
docker run -d --memory=512m --cpus=1 nginx:latest
2. Kubernetes 集群管理
# 集群管理
kubectl cluster-info
kubectl get nodes
# 资源管理
kubectl get pods --all-namespaces
kubectl describe pod pod-name
# 应用部署
kubectl apply -f deployment.yaml
kubectl scale deployment myapp --replicas=3
3. 虚拟化管理
# KVM管理
virsh list --all # 列出所有虚拟机
virsh start vmname # 启动虚拟机
virsh shutdown vmname # 关闭虚拟机
# VirtualBox管理
VBoxManage list vms # 列出虚拟机
VBoxManage startvm vmname # 启动虚拟机
七、故障排查与修复
1. 系统启动问题
# 启动修复
journalctl -xb # 查看启动日志
systemctl --failed # 查看失败的服务
# 救援模式
chroot /mnt/sysimage # 进入救援环境
fsck -y /dev/sda1 # 修复文件系统
# 内核参数调整
grub2-editenv list # 查看GRUB环境变量
2. 性能问题排查
# CPU问题
pidstat 1 # 进程CPU使用率
perf top # 性能分析
# 内存问题
vmstat 1 # 内存使用统计
slabtop # 内核slab缓存
# I/O问题
iostat -x 1 # I/O统计
blktrace # 块设备跟踪
3. 网络问题排查
# 连接问题
tcpdump -i eth0 port 80 # 抓包分析
tshark -i eth0 # Wireshark命令行版
# DNS问题
dig example.com # DNS查询
nslookup example.com # 域名解析
# 防火墙问题
iptables -L -n -v # 查看iptables规则
firewall-cmd --list-all # 查看firewalld配置
八、自动化与脚本编写
1. Shell 脚本技巧
#!/bin/bash
# 脚本调试
set -e # 遇到错误退出
set -x # 显示执行的命令
# 日志记录
exec > >(tee -a /var/log/script.log) 2>&1
# 错误处理
trap 'echo "Error at line $LINENO"; exit 1' ERR
# 参数处理
while getopts "a:b:" opt; do
case $opt in
a) arg1=$OPTARG ;;
b) arg2=$OPTARG ;;
\?) echo "Invalid option: -$OPTARG" >&2 ;;
esac
done
2. 计划任务管理
# Cron配置
crontab -l # 查看当前任务
crontab -e # 编辑任务
# Systemd定时器
systemctl list-timers # 查看systemd定时器
这份全面的 Linux 系统管理指南涵盖了从基础操作到高级运维的各个方面,适合不同水平的系统管理员参考使用。建议根据实际需求选择合适的技术和工具。