Appearance
Linux 初始入手与实战更新指南
目标:以小白视角,按照真实业务运维的先后顺序,手把手带你完成从登录服务器到搞定程序更新与排障的全过程。
第一阶段:环境摸底 (刚拿到服务器该看啥)
当你第一次通过 SSH 登录一台陌生的 Linux 服务器,先不要急着敲复杂的命令,按顺序完成这三项“体检”。
1. 搞清楚这是谁的地盘 (系统版本)
- 操作命令:
cat /etc/os-release - 白话解释:这就像是右键“此电脑”看属性。
- 你应该看什么:
PRETTY_NAME="Ubuntu 22.04.3 LTS":看到这个,你就知道后续安装软件要用apt。- 如果是
CentOS,则使用yum。
- 避坑指南:如果你发现命令前面提示
Permission denied,在命令前加sudo(如sudo cat ...),这相当于 Windows 的“以管理员身份运行”。
2. 看看磁盘还有没有位置 (空间检查)
- 操作命令:
df -h - 参数详解:
-h代表 "Human-readable",把字节转成你能看懂的 GB/MB。 - 你应该看什么:
- 看
Use%这一列。如果/(根目录)或者/data已经到了 90% 以上,这时候更新程序很可能会失败。
- 看
- 进阶命令:
du -sh /app/*(查看/app目录下每个文件夹分别占了多大空间,找“大头”)。
3. 看看谁在“吃”性能 (资源监控)
- 操作命令:
htop - 作用:这就是 Linux 版的“任务管理器”。
- 操作技巧:
- 按
F6可以按内存(MEM%)或 CPU 排序。 - 看到某个进程红了,记住它的
PID(进程 ID)。 - 按
q退出。
- 按
第二阶段:应用程序更新实战 (搬运工的自我修养)
更新程序通常涉及:传包 -> 备份旧版 -> 替换新版 -> 重启。
1. 准备与解压更新包
通常你会用宝塔或 FTP 把包传到 /tmp 或 /data/transfer。
- 解压命令:
tar -zxvf package.tar.gz -C /app/new_version/ - 参数白话:
-z:处理 gzip 压缩文件。-x:从包里提取文件。-v:把解压的文件名刷出来给你看,让你知道没卡住。-f:指定文件名。-C:解压到指定目录。
2. 安全备份 (防手抖第一准则)
在 Linux 下没有“撤销”键,覆盖前必须备份。
- 操作命令:
cp -r /app/website /app/backup/website_$(date +%Y%m%d_%H%M) - 白话解释:把
/app/website整个文件夹复制到备份目录,并自动在文件名后加个时间戳(如website_20260922_1830)。 - 检查备份:
ls -lh /app/backup/确认文件夹确实在那儿。
3. 执行覆盖更新
- 操作命令:
sudo cp -rf /app/new_version/* /app/website/ - 参数详解:
-f代表强制覆盖,不再一个个问你“是否确认”。 - 权限修正:更新完后,如果程序跑不起来,可能是权限变了。
sudo chown -R www:www /app/website(把所有者改回 Web 用户)。
第三阶段:Docker 容器管理 (现代部署核心)
如果你负责的项目(如 BigDataTrainNet10)跑在 Docker 里,这几招是必杀技。
1. 确认容器活没活着
- 操作命令:
docker ps - 看什么:
STATUS:如果是Up 2 hours说明很健康;如果是Restarting...说明程序在崩溃重启。PORTS:看外部端口(如 8080)是否正确映射到了内部。
2. 容器镜像一键更新
如果你有 docker-compose.yml,更新最快的方式:
bash
# 1. 拉取/构建最新镜像并启动,-d 代表后台运行
docker compose up -d --build neat-api- 小白提示:这个命令会自动帮你停止旧容器、删掉它、用新代码起个新容器。
3. 进入容器“内部”看看
有时候你需要进容器查配置文件。
- 操作命令:
docker exec -it neat-api /bin/bash - 退出:输入
exit回到宿主机。
第四阶段:深度排障 (如何优雅地看日志)
程序报错了,不要瞎猜,去日志里找证据。
1. 实时“监控”日志 (盯着看)
- 操作命令:
tail -f /app/logs/api-error.log - 场景:你一边在浏览器点按钮,一边看终端里的日志跳动,报错会瞬间弹出来。
2. 定向“抓取”关键错误
- 操作命令:
grep -n -C 5 "SQLConnectionError" /app/logs/api.log - 白话详解:
-n:告诉我错误在第几行。-C 5:显示报错行前后各 5 行的内容,因为报错堆栈通常在关键句后面。
3. 检查服务自启动状态
如果没用 Docker,程序是作为服务运行的:
- 操作命令:
sudo systemctl status neat-api.service - 看什么:
Active: active (running)代表绿灯;failed代表红灯,下面会直接显示最后的报错原因。
避坑与生存小贴士 (小白必读)
- Tab 键是你的手指延伸:输入路径时多按
Tab,如果它不自动补全,说明你路径写错了,提前发现错误。 - Ctrl + C 是万能制动:日志刷屏停不下来?命令卡住了?按它。
- rm -rf 是地雷:除非你百分之百确定,否则永远不要用它。推荐先用
mv把要删的东西移到/tmp,确认没问题了过两天再清。 - 修改配置必留后路:
sudo cp config.json config.json.bak- 改错了直接
mv config.json.bak config.json秒级回滚。
Generated by Ark Gardener - 让 Linux 运维像 Windows 一样有迹可循。
