Linux 业务场景常用命令详解

一、系统监控与性能分析

1. 系统资源监控

bash 复制代码
# 实时监控系统资源
top
htop       # 增强版top,需安装

# 查看系统负载
uptime
cat /proc/loadavg

# 内存监控
free -h
vmstat 2 5   # 每2秒采样,共5次

# CPU监控
mpstat -P ALL 1  # 每1秒查看所有CPU使用情况
sar -u 2 5       # 每2秒采样CPU,共5次

2. 磁盘监控

bash 复制代码
# 磁盘使用情况
df -hT
lsblk

# 磁盘I/O监控
iostat -x 1 3
iotop          # 需安装,类似top的磁盘监控

# 大文件查找
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

3. 网络监控

bash 复制代码
# 网络连接统计
netstat -tunlp
ss -tunlp      # 更快的netstat替代

# 实时网络流量
iftop -i eth0  # 需安装
nethogs        # 按进程查看流量

# 网络性能测试
iperf3 -s      # 服务端
iperf3 -c <server_ip> -t 30  # 客户端

二、故障排查与日志分析

1. 日志分析

bash 复制代码
# 实时查看日志
tail -f /var/log/syslog
journalctl -f   # systemd系统

# 日志过滤
grep "ERROR" /var/log/messages
grep -A 5 -B 5 "关键字" /var/log/nginx/access.log

# 日志时间范围查询
sed -n '/2024-01-01 10:00/,/2024-01-01 11:00/p' /var/log/messages

2. 进程排查

bash 复制代码
# 查找占用资源高的进程
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10

# 查看进程打开的文件
lsof -p <PID>
lsof -i :8080   # 查看端口占用

# 进程树查看
pstree -ap <PID>

3. 系统调用追踪

bash 复制代码
# 跟踪系统调用
strace -p <PID> -f -tt
strace -c <command>  # 统计系统调用

# 动态库调用跟踪
ltrace -p <PID>

三、日常运维操作

1. 文件与目录管理

bash 复制代码
# 批量操作
find /var/log -name "*.log" -mtime +7 -delete
find . -type f -exec grep -l "pattern" {} \;

# 文件同步与备份
rsync -avz --progress source/ user@dest:/path/
rsync -avz --delete source/ dest/  # 镜像同步

2. 用户与权限管理

bash 复制代码
# 批量用户管理
for user in user1 user2 user3; do
    useradd $user
    echo "$user:Initial123" | chpasswd
done

# 权限修复
find /path -type d -exec chmod 755 {} \;
find /path -type f -exec chmod 644 {} \;
chown -R user:group /path

3. 定时任务

bash 复制代码
# 查看所有用户的cron任务
for user in $(cut -f1 -d: /etc/passwd); do 
    echo "=== $user ==="; 
    crontab -u $user -l 2>/dev/null; 
done

# 一次性定时任务
echo "bash /path/script.sh" | at 02:00 tomorrow

四、网络配置与诊断

1. 网络配置

bash 复制代码
# IP配置
ip addr show
ip route show
ip link set eth0 up
ip addr add 192.168.1.100/24 dev eth0

# 网络诊断
mtr -n 8.8.8.8           # 路由跟踪
tcpdump -i eth0 -n port 80
nc -zv host port         # 端口检测

2. 防火墙管理

bash 复制代码
# iptables
iptables -L -n -v
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

# firewalld(CentOS/RHEL)
firewall-cmd --list-all
firewall-cmd --add-port=8080/tcp --permanent

五、容器与编排环境

1. Docker操作

bash 复制代码
# 容器管理
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
docker stats --no-stream
docker logs -f --tail 100 <container>

# 清理无用资源
docker system prune -af
docker volume prune

2. Kubernetes操作

bash 复制代码
# 常用查询
kubectl get pods -o wide
kubectl get events --sort-by='.lastTimestamp'
kubectl top pods --containers

# 日志查看
kubectl logs -f <pod> --tail=100
kubectl logs --since=1h <pod>

# 故障排查
kubectl describe pod <pod>
kubectl exec -it <pod> -- /bin/bash

六、Shell脚本技巧

1. 常用脚本片段

bash 复制代码
#!/bin/bash

# 参数检查
if [ $# -ne 2 ]; then
    echo "Usage: $0 <arg1> <arg2>"
    exit 1
fi

# 安全退出
set -euo pipefail
trap "echo '脚本被中断'; exit 1" INT TERM

# 并发控制
MAX_JOBS=5
for item in $(cat list.txt); do
    ((i=i%MAX_JOBS)); ((i++==0)) && wait
    process_item "$item" &
done
wait

2. 实用函数

bash 复制代码
# 日志函数
log() {
    local level=$1
    shift
    echo "$(date '+%Y-%m-%d %H:%M:%S') [$level] $@"
}

# 检查服务状态
check_service() {
    systemctl is-active --quiet $1
    if [ $? -eq 0 ]; then
        log "INFO" "Service $1 is running"
        return 0
    else
        log "ERROR" "Service $1 is not running"
        return 1
    fi
}

七、性能优化命令

1. 内核参数调优

bash 复制代码
# 查看当前参数
sysctl -a | grep tcp
cat /proc/sys/vm/swappiness

# 临时修改
sysctl -w net.core.somaxconn=1024

# 永久修改
echo "net.core.somaxconn=1024" >> /etc/sysctl.conf
sysctl -p

2. 文件系统优化

bash 复制代码
# I/O调度器
cat /sys/block/sda/queue/scheduler
echo "deadline" > /sys/block/sda/queue/scheduler

# 文件系统检查
tune2fs -l /dev/sda1  # ext文件系统
xfs_info /dev/sdb1    # xfs文件系统

八、安全审计

1. 安全检查

bash 复制代码
# SSH安全检查
grep -E "PermitRootLogin|PasswordAuthentication" /etc/ssh/sshd_config

# 文件完整性检查
rpm -Va  # RHEL/CentOS
debsums  # Debian/Ubuntu

# 异常进程检查
ps aux | awk '$3>30 || $4>30 {print $0}'

2. 入侵检测

bash 复制代码
# 检查异常登录
last -f /var/log/wtmp | head -20
grep "Failed password" /var/log/auth.log

# 检查可疑文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
find / -type f -name "*.php" -exec grep -l "eval(" {} \;

九、实用组合命令

1. 监控组合

bash 复制代码
# 一键系统健康检查
echo "=== $(date) ==="
echo "Load: $(uptime)"
echo "Memory: $(free -h | grep Mem)"
echo "Disk: $(df -h / | tail -1)"
echo "Top CPU: $(ps aux --sort=-%cpu | head -3 | tail -2)"
echo "Top MEM: $(ps aux --sort=-%mem | head -3 | tail -2)"

2. 批量操作

bash 复制代码
# 并行执行命令
parallel -j 10 ssh {} "hostname" ::: server{1..20}

# 批量文件处理
find /data -name "*.log" -type f -size +1G | while read file; do
    gzip "$file"
done

最佳实践建议

  1. 命令别名:将常用命令添加到~/.bashrc
bash 复制代码
alias ll='ls -alhF'
alias ports='netstat -tunlp'
alias df='df -hT'

2. 历史命令优化

bash 复制代码
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTTIMEFORMAT='%F %T '

3. 使用screen/tmux:保持会话持久化

bash 复制代码
screen -S session_name
tmux new -s session_name

4. 定期清理

bash 复制代码
# 清理旧内核
apt autoremove --purge   # Debian/Ubuntu
package-cleanup --oldkernels --count=2  # CentOS/RHEL
相关推荐
晚枫歌F10 分钟前
Dpdk介绍
linux·服务器
TH_11 小时前
35、AI自动化技术与职业变革探讨
运维·人工智能·自动化
风送雨1 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
model20052 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
yuhaiqun19892 小时前
学服务器训练AI模型:5步路径助力高效入门
运维·服务器·人工智能·笔记·机器学习·ai
huaweichenai2 小时前
docker部署kkFileView实现文件预览功能
运维·docker·容器
以太浮标2 小时前
华为eNSP模拟器综合实验之-BFD联动配置解析
运维·网络·华为·信息与通信
阿杰 AJie3 小时前
主流传输 /通信协议的【使用场景 + 详细使用说明】大全
服务器·tcp/ip
工程师老罗3 小时前
龙芯2k0300 PMON取消Linux自启动
linux·运维·服务器
千百元3 小时前
centos如何删除恶心定时任务
linux·运维·centos