糖呀糖啦~Pleiades
首页
归档
关于
友链
切换模式
返回顶部
首页
技术实践
书斋絮语
晴天札记
糖呀糖啦~Pleiades
首页
技术实践
书斋絮语
晴天札记
首页
归档
关于
友链
Linux 系统中,因 vim 编辑器意外关闭或系统崩溃造成的交换文件问题
技术实践
·
01-22
糖呀糖 xyz
# 问题描述 以 离线部署 K8s 这个实践中调整 `inventory/mycluster/group_vars/all/offline.yml` 内容为例,在编辑后的操作(不记得如何操作的),vim 进入文件后,出现以下提示: ```yaml Found a swap file by the name "inventory/mycluster/group_vars/all/.offline.yml.swp" owned by: root dated: Mon Jan 20 13:50:31 2025 file name: /home/xyz/kubematrix/inventory/mycluster/group_vars/all/offline.yml modified: YES user name: root host name: deployment process ID: 1100 (STILL RUNNING) While opening file "inventory/mycluster/group_vars/all/offline.yml" dated: Fri Jan 17 18:04:02 2025 (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r inventory/mycluster/group_vars/all/offline.yml" to recover the changes (see ":help recovery"). If you did this already, delete the swap file "inventory/mycluster/group_vars/all/.offline.yml.swp" to avoid this message. Swap file "inventory/mycluster/group_vars/all/.offline.yml.swp" already exists! 交换文件“inventory/mycluster/group_vars/all/.offline.yml.swp”已存在! [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: ``` # 错误原因 vim 编辑器在编辑文件时意外关闭或者系统崩溃,留下了一个交换文件(swap file)。 如果此时按 `o` 进入文件会发现,内容同之前编辑的也有差别。 # 解决方案 因为确定没有在其他终端打开这个文件,所以这个情况可能是由于之前的编辑 session 异常退出导致的。 ## 首先确认是否真的没有其他进程在编辑该文件 执行: ```bash ps aux | grep 1100 ``` 检查进程 ID 1100 是否真的存在。如果不存在,说明之前的编辑 session 已经结束。 但实际在执行上述命令后,发现返回的内容如下: ```bash root 1100 0.0 0.1 14840 9568 pts/1 Tl+ 13:49 0:00 vim inventory/mycluster/group_vars/all/offline.yml xyz 1174 0.0 0.0 6332 2088 pts/0 S+ 14:00 0:00 grep 1100 ``` 表明,确实有一个 vim 进程(PID 1100)仍在运行,所以需要先终止这个进程,然后再处理文件 ## 终止 vim 进程 ```bash # 使用 kill 命令终止进程 sudo kill 1100 # 普通的 kill 不起作用,可以强制终止 sudo kill -9 100 # 由于在用普通的 kill 命令试过一次之后,发现并没有终止,所以使用强制终止的命令 ``` ## 确认进程已经终止 ```bash ps aux | grep 1100 ``` 这是应该只看到 grep 命令本身,而不是 vim 进程 执行命令后,返回内容如下: ```bash xyz 1199 0.0 0.0 6332 2104 pts/0 S+ 14:06 0:00 grep 1100 ``` ## 删除交换文件 ```bash sudo rm inventory/mycluster/group_vars/all/.offline.yml.swp ``` ## 重新开始编辑文件 ```bash sudo vim inventory/mycluster/group_vars/all/offlin.yml ``` # `cp` 命令的基本语法 `cp` 命令的基本语法是: ```bash cp [选项] 源文件 目标文件 ``` 如果想要备份源文件 ```bash cp inventory/mycluster/group_vars/all/offline.yml inventory/mycluster/group_vars/all/offline.yml bak # 以上内容没换行 ``` 以上命令中,第一个路径是源文件,第二个路径是目标文件(备份文件) 常用选项: - `-r` 递归复制目录 - `-f` 强制覆盖 - `-p` 保留文件属性 - `-v` 显示复制过程 # References - claude 3.5 sonnet
Linux
取消回复
提交评论
糖呀糖 xyz
我们谈论生活,讨论技术,借由文字,抵达心灵。
热门文章
【Kubernetes】第一个实例 - Java Web 应用
Obsidian 迁移全记录(又名:纯小白的闭坑指南)
使用宝塔面板对网站、数据库等进行定时备份到腾讯云 COS 对象存储
2025 年
在细雨中呼喊,在困顿中挣扎
Ubuntu 22.04 server 安装教程
Debian 12.2 安装方法
最新评论
tl.s: 很实用 🦆🦆
tl.s: 绘图很清晰,图示质量很高
tl.s: 写的很详细,赞👍
Deep Router: 大佬好强!!!
tls: 写的很详细,很清晰!
tl.s: 讲的很清楚,语言组织很好 🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆
tl.s: 好棒🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆🦆
热门标签
Kubernetes
Ubuntu
Linux
Python3
生活
2025
Debian
技术实践
在细雨中呼喊
读书笔记
笔记软件
Obsidian
2024
openEuler
Kuboard
粤ICP备2024349207号