1. Linux 基础
❓1.1 常见 Linux 命令
| 类型 | 关键命令 |
|---|---|
| 文件操作 | ls, cd, cp, mv, rm, find, locate |
| 权限管理 | chmod, chown, umask, sudo |
| 进程管理 | ps, top, htop, kill, pkill, nice, renice |
| 磁盘管理 | df, du, fdisk, mount, umount, lsblk |
| 日志分析 | tail, cat, grep, awk, sed, journalctl |
| 网络 | netstat, ss, ip a, ping, traceroute, curl, wget, tcpdump, iptables |
❓1.2 如何查看 CPU、内存、磁盘、网络使用情况?
# 查看 CPU 负载 top htop # 交互式进程管理工具 # 查看内存使用情况 free -m # 查看磁盘使用情况 df -h # 挂载磁盘使用情况 du -sh * # 计算当前目录各文件夹占用空间 # 查看网络连接 ss -tulnp # 显示监听的端口及进程 netstat -anp # 监听所有端口
❓1.3 如何查看系统日志?
# 查看系统日志 journalctl -xe dmesg | tail -20 # 查看最近的系统日志 tail -f /var/log/syslog # 监控日志变化
2. Shell 脚本
❓2.1 如何写一个检测服务器 CPU、内存、磁盘的 Shell 脚本?
#!/bin/bash echo "CPU 使用情况:" top -b -n1 | grep "Cpu(s)" echo "内存使用情况:" free -m echo "磁盘使用情况:" df -h
3. 网络
❓3.1 如何查看服务器的 IP 地址和网络连接?
ip a # 查看 IP 地址 ss -tulnp # 查看监听的端口 ping 8.8.8.8 # 测试网络连通性 traceroute 8.8.8.8 # 查看路由路径
❓3.2 端口占用问题
netstat -tulnp | grep 8080 # 查看 8080 端口被哪个进程占用 lsof -i:8080 # 同上 kill -9 <PID> # 杀死进程
4. 服务器监控
❓4.1 常见监控工具
| 类型 | 工具 |
|---|---|
| 服务器监控 | Prometheus + Grafana |
| 日志收集 | ELK(Elasticsearch, Logstash, Kibana) |
| 容器监控 | cAdvisor, Prometheus, Loki |
| 进程监控 | Monit, Supervisor |
❓4.2 如何用 Prometheus 监控服务器?
-
安装 Node Exporte
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz tar -xzf node_exporter-1.5.0.linux-amd64.tar.gz cd node_exporter-1.5.0.linux-amd64 ./node_exporter
-
配置 Prometheus
yaml
scrape_configs: - job_name: 'node' static_configs: - targets: ['localhost:9100']
-
启动 Grafana,连接 Prometheus,配置可视化图表
5. Docker & Kubernetes
❓5.1 Docker 常见命令
docker ps # 查看运行中的容器 docker images # 查看镜像列表 docker run -d -p 8080:80 nginx # 运行 Nginx 容器 docker exec -it <container_id> /bin/bash # 进入容器 docker logs -f <container_id> # 查看容器日志
❓5.2 Kubernetes 相关概念
| 组件 | 作用 |
|---|---|
| Pod | 最小部署单元 |
| Deployment | 无状态应用管理 |
| StatefulSet | 有状态应用管理(数据库) |
| Service | 负载均衡和服务发现 |
| ConfigMap | 配置管理 |
| Secret | 机密信息管理 |
❓5.3 K8s 常见命令
kubectl get pods # 查看 Pod kubectl get services # 查看 Service kubectl apply -f deployment.yaml # 部署资源 kubectl delete pod <pod_name> # 删除 Pod
6. 数据库(MySQL)
❓6.1 MySQL 相关操作
sql
SHOW DATABASES; -- 查看所有数据库 USE mydb; -- 切换数据库 SHOW TABLES; -- 查看表 SELECT * FROM users; -- 查询数据 SHOW PROCESSLIST; -- 查看当前执行的 SQL
❓6.2 MySQL 性能优化
-
索引优化:合理使用 B-Tree 索引,避免全表扫描
-
慢查询日志:分析
slow_query_log -
分库分表:Sharding 拆分大表
-
缓存:使用 Redis 作为查询缓存
7. 云计算 & DevOps
❓7.1 什么是 CI/CD?
CI/CD(持续集成 / 持续部署)自动化软件构建、测试和发布流程。
常见工具:
-
Jenkins(最流行的 CI/CD)
-
GitHub Actions(云原生 CI/CD)
-
ArgoCD(K8s 部署)
❓7.2 如何使用 Jenkins 实现自动部署?
-
安装 Jenkins
-
创建 Pipeline
-
使用
Jenkinsfile进行自动构建
groovy
复制编辑
pipeline { agent any stages { stage('Clone') { steps { git 'https://github.com/your-repo.git' } } stage('Build') { steps { sh 'mvn package' } } stage('Deploy') { steps { sh 'scp target/app.jar user@server:/opt/app/' sh 'ssh user@server "systemctl restart app"' } } } }
总结
| 领域 | 重点知识 |
|---|---|
| Linux | 进程、日志、磁盘、权限 |
| Shell | 自动化运维脚本 |
| 网络 | 端口、IP、连接排查 |
| 监控 | Prometheus, Grafana, ELK |
| 容器 | Docker, Kubernetes |
| 数据库 | MySQL, Redis 优化 |
| CI/CD | Jenkins, GitHub Actions |

2836

被折叠的 条评论
为什么被折叠?



