简易运维指北

为什么不叫指南,因为不配。这篇文章就记几个我自己运维的时候老是去搜的命令,写下来方便以后翻。三个方向:Docker、网络、进程。 不会讲 Docker 基础用法,也不讲怎么装。假设你跟我一样,知道 docker 是啥,但具体运维的时候老忘命令。 Docker 这玩意占了多少资源? 服务器上跑了十几个容器,有时候磁盘或者内存告警了,第一反应就是"到底谁在吃资源"。 磁盘占用: 1 2 # 所有容器的磁盘占用,大的排前面 docker system df -v 这个命令会显示镜像、容器、build cache 各占了多少空间。-v 是 verbose,会逐个列出每个镜像/容器的大小。 如果发现某个镜像版本占了巨大空间,docker image prune 可以清理悬空镜像(就是那种 <none>:<none> 的)。加上 -a 会清掉所有没被容器引用的镜像,慎用。 1 2 3 4 5 6 7 8 # 只清悬空镜像 docker image prune # 清所有没在用的镜像(慎) docker image prune -a # 全家桶:清容器、网络、镜像、build cache docker system prune -a 内存和 CPU 实时占用: 1 docker stats 实时刷新的,类似 top。按 CPU 或内存排序,一眼就能看出谁是大户。Ctrl+C 退出。 ...

May 13, 2026 · 5 min · 998 words · Ray

Linux 存储空间爆满排查处理

Info 在Linux中创建文件或运行应用时,出现错误提示No space left on device,表明存储资源已耗尽。 参考文章 :诊断并解决Linux实例磁盘空间满的多种场景-云服务器 ECS-阿里云 GPT5.4 指导 排查过程 由于该服务器是公司的主开发、测试服务器,使用人数较多经常会出现这个问题,这次统一整理一下操作过程,记录学习 检查分区情况 首先使用 df -h 查看 哪个分区满了 df : disk free -h: human-readable,不加该参数默认会以“字节”(Bytes)为单位显示,加上后系统会自动以 G (GB)、M (MB)、K (KB) 等单位显示 1 2 3 4 5 6 7 8 9 10 11 (base) yangr@172-16-99-32-Dev:/data/huggingface_model$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 13G 29M 13G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 501G 481G 0 100% / tmpfs 63G 3.0M 63G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sdb1 3.6T 2.8T 622G 82% /data /dev/sda2 2.0G 252M 1.6G 14% /boot /dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi tmpfs 13G 12K 13G 1% /run/user/1000 tmpfs 13G 12K 13G 1% /run/user/1002 我这里 / 分区已经 100% 此时大部分程序写入 日志或者 /tmp之类都会失效,严重影响服务器使用 ...

March 13, 2026 · 4 min · 809 words · Ray

C盘被wsl吃干抹净

前言 说是 被 WSL 给吃干抹净是不严谨的,但是这次出现的问题是公司一台开发机器。512 拆分两个盘,而我在运行 WSL Ubuntu 的过程中突然断联,说 1 2 3 4 5 6 (base) PS C:\Users\mck-dev> wsl <3>WSL (40532 - Relay) ERROR: CreateProcessParseCommon:1003: getpwuid(1000) failed 5 <3>WSL (40532 - Relay) ERROR: ConfigUpdateLanguage:2519: fopen(/etc/default/locale) failed 5 <3>WSL (40532 - Relay) ERROR: operator():577: getpwuid(0) failed 5 <3>WSL (40532) ERROR: I/O error @util.cpp:1356 (UtilInitGroups) <3>WSL (40532 - Relay) ERROR: CreateProcessCommon:805: Create process failed 一看C盘已经不是爆红,而是彻底满了。 这让我想起来 WSL 默认的文件系统应该也是在 C 盘(上次操作docker 给客户操作了一次),那我应该迁移一次,但是这次不是docker,怎么迁移这个文件系统 在WSL setting中找到文件系统的菜单中只有大小的设置,那么看来没有什么GUI的工具能帮我啦。 遇到这种问题其实很生气,因为我当时强行合盘,在我获得一个 2T的 C盘时,给我电脑造成超多碎片垃圾到现在没有清理干净。真是丧尽天良的落后设计。 导出内容 WSL 的“默认盘符”本质上是 发行版的 ext4.vhdx 所在位置。 只要 ext4.vhdx 在 D 盘,本质就已经迁移完成。 他已经来到了8G,对于这台118GB的 C盘,之前又装了 Epic 开发UE5,爆满在意料之中 执行以下命令把他导出 1 2 3 4 5 (base) PS C:\Users\mck-dev> wsl --export Ubuntu-22.04 D:\wsl\ubuntu.tar 正在导出,这可能需要几分钟时间。 (0 MB) 无法启动分发。错误代码: 6,失败步骤: 2 错误代码: Wsl/Service/E_FAIL 结果失败了,我猜爆满的C盘已经没有能力启动 WSL 。那么通过 WSL 去导出文件已经不可能。那就只能先清理一部分了。 清理了常见的 temp 和download,没有任何改善,此时我可以抛弃wsl的数据, ...

February 2, 2026 · 1 min · 205 words · Ray

怎么使用uv来管理 python 环境

依稀记得大一寒假打开 小甲鱼 python教程的一周后就认识了 Anaconda 这个解放我安装python 依赖的工具,至今已经过去了六年了,conda 似乎也做了一些商业收费的举措之类的,让很多大公司用上了新的环境管理工具,由于习惯我还一直用着conda,以至于我对 python 自己的 pyenv 都不是很了解(Damn!!!太丢人了) 那么这次就来用用 uv这个所谓的 超高速python工具链 uv 安装 uv macOS / Linux / WSL curl -LsSf https://astral.sh/uv/install.sh | sh Windows(PowerShell) irm https://astral.sh/uv/install.ps1 | iex 验证: uv --version 常见用法 1. 创建项目并指定python版本 在空目录或者指定目录创建项目 1 2 # 创建新目录并初始化项目 uv init my-app 或者你当前在一个空目录下: uv init 结果: uv 会生成一套基础文件,例如: 1 2 3 4 5 my-app/ ├── pyproject.toml # 项目配置(依赖/元数据) ├── .python-version # 记录 Python 版本 ├── README.md ├── main.py (示例入口) 如果指定了应用名 my-app,uv 也会生成对应样板代码和README.md。 ...

January 7, 2026 · 2 min · 307 words · Updated: January 24, 2026 · Ray

tmux是什么

本文大大大大量参考 阮一峰老师的博客,虽然我在之前的使用中没有翻阅他的文章,不过哪怕是抄,我也觉得应该抄个优秀的。 Tmux 使用教程 - 阮一峰的网络日志 这我没想到这篇写在19年,比我上次看的那个 async 要小很多了 Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。 我常用是因为两个情况 懒得开多个窗口 远控服务器经过堡垒机 一、Tmux是什么 1.1 会话与进程 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session) 。 会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。 也就是初学的时候,连上虚拟机或者ssh连上Linux之后部署运行程序是直接在这个窗口中运行的。当窗口关闭时程序也随之关闭,在当时接触了解了nohup 和 screen 。 一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。 history能存上一次执行的命令,这里回头一定要学习一下,因为我也不知道什么情况才会存进history中 为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。 1.2 Tmux 的作用 Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。 (1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。 (2) 它可以让新窗口"接入"已经存在的会话。 (3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。 (4)它还支持窗口任意的垂直和水平拆分。 类似的终端复用器还有 GNU Screen。Tmux 与它功能相似,但是更易用,也更强大。 二、基本用法 2.1 安装 Tmux 一般需要自己安装。 1 2 3 4 5 6 7 8 # Ubuntu 或 Debian $ sudo apt-get install tmux # CentOS 或 Fedora $ sudo yum install tmux # Mac $ brew install tmux 2.2 启动与退出 安装完成后,键入tmux命令,就进入了 Tmux 窗口。 ...

January 7, 2026 · 3 min · 520 words · Ray