有人通过 ssh 打开
vi
,并将输出粘贴到缓冲区中,然后关闭/崩溃了该终端。后来发现系统没有磁盘了。
自我回答。
之前未解决的报告,通常没有回应或嘲笑回应:
https://groups.google.com/g/vim_dev/c/RRJOfwOXtlA?pli=1
我一直在 Linux 上使用 vim,发现创建巨大的 swp 文件会占用所有硬盘空间的问题。 如果您打开 vim 并复制可能导致 Linux 控制台挂起的大文本,然后强制关闭控制台,几天后 swp 文件大小可能会达到数百 GB。我已经遇到过这个问题两次,每次我都必须查找这些 swp 文件是在哪个目录中创建的。 我使用的是 vim 版本 8.0.1453。
https://www.reddit.com/r/vim/comments/8oy57j/issue_about_huge_swp_file_cause_disk_full/
今天,我的一个 linux 服务器磁盘满了,我发现两个 vim 交换文件导致了这个问题
https://www.reddit.com/r/vim/comments/86ny08/cause_of_300gb_swap_file_oo/
我有一个文本文件(python 代码,可能有 100 行)打开了几天,然后将其删除(并且在某个时候关闭了保存它的 vim 终端)。 你瞧,几天后,我的空间不足了,并追踪到问题 ~/.vim/file.py.swap 占用了高达 298GB 的磁盘空间
我对“粘贴到缓冲区”的直接怀疑是它不是在插入模式下完成的,这触发了一些重复的命令被执行。
我可以通过打开一个新文件并输入类似的命令来快速重现此问题
100000iA<esc>
(创建一条长线)yy10000000p
(粘贴很多次)
我通过保存部分版本做了一些其他的探索,因此可能会有更多的复制内容(我不打算复制,见下文)。观察到以下行为
.swp
文件增长得相当快(~5GB/秒)vim
进程无法终止,即使是 sudo kill -9
(osx)
vi
没有任何反应Full Disk Access
,但没有帮助System Integrity Protection
.swp
文件
.swp
文件返回(仍在增长)版本信息
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Sep 01 2022 15:00:53)
macOS version - x86_64
Included patches: 1-350