Ubuntu下Replit误删运行中Python Flask脚本如何恢复代码
Ubuntu环境运行中误删Flask脚本恢复方案
核心前提
绝对不要终止当前运行的Flask进程、不要重启Replit实例、不要执行系统临时文件清理操作。Linux系统中只要持有文件的进程未退出,被删除文件的inode不会被内核回收,可直接通过进程虚拟文件系统找回完整源码,全程不需要安装额外工具。
操作步骤
定位Flask主进程PID
执行以下命令筛选正在运行的Flask相关进程,找到承载目标应用的主进程ID(PID):ps aux | grep flask如果能回忆起被删除脚本的文件名,也可以直接用pgrep快速定位:
pgrep -f "你记忆中的脚本文件名.py"记录下找到的主进程PID,后续命令中替换为实际值即可。如果主进程未找到对应文件,再用相同方法排查3个子进程的PID。
查找被删除脚本对应的文件描述符
进入对应进程的文件描述符目录,筛选所有已被标记为删除的打开文件:cd /proc/[你记录的PID]/fd ls -l | grep deleted输出结果中会出现类似如下条目,对应你被删除的Python脚本:
lr-x------ 1 runner runner 64 Aug 20 12:00 3 -> /home/runner/yourproject/app.py (deleted)条目中箭头前的数字
3就是该文件对应的文件描述符编号,箭头后是文件原来的存储路径。导出恢复源码
直接将文件描述符对应的内容拷贝到安全位置做备份,优先备份到非项目目录避免覆盖原有运行关联文件:cp 3 /home/runner/recovered_app.py打开导出的文件确认代码完整无误后,再拷贝回原路径即可。
注意事项
- 恢复出的文件第一时间做多份备份,确认代码完整后再进行服务重启、环境调整等操作
- 如果主进程的fd目录中未找到目标脚本,逐个对3个子进程重复上述查找、导出操作即可
- 恢复完成后建议立刻为项目初始化版本控制(如Git),定期提交代码避免后续出现同类误操作
内容的提问来源于stack exchange,提问作者Deathlok Gaming
相关产品推荐
相关产品推荐

