linux误 *** 作删除文件后,还能还原么?

linux误 *** 作删除文件后,还能还原么?,第1张

删除文件进程还在的情况

这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID还是存在。这也就是有些服务器删除一些文件但是磁盘不释放的原因。比如当前举例说明:

通过一个shell终端对一个测试文件做cat追加 *** 作:

[root@21yunwei_backup ~]# echo  "hello  py" >testdelete.py

[root@21yunwei_backup ~]# cat  >>testdelete.py

hello delete

另外一个终端查看这个文件可以清楚看到内容:

[root@21yunwei_backup ~]# cat testdelete.py

hello  py

hello delete

此时,在当前服务器删除 *** 作文件rm -f ./testdelete.py

命令查看这个目录,文件已经不存在了,那么现在我们将其恢复出来。

1,lsof查看删除的文件进程是否还存在。这里用到一个命令lsof,如没有安装请自行yum或者apt-get。类似这种情况,我们可以先lsof查看删除的文件 是否还在:

[root@21yunwei_backup ~]# lsof | grep deleted

mysqld     1512   mysql    5u      REG              252,3          0    6312397 /tmp/ibzW3Lot (deleted)

cat       20464    root    1w      REG              252,3         23    1310722 /root/testdelete.py (deleted)

幸运的是这种情况进程还存在 ,那么开始进行恢复 *** 作。

2,恢复。

恢复命令:

cp /proc/pid/fd/1  /指定目录/文件名

进入 进程目录,一般是进入/proc/pid/fd/,针对当前情况:

[root@21yunwei_backup ~]# cd   /proc/20464/fd

[root@21yunwei_backup fd]# ll

total 0

lrwx------ 1 root root 64 Nov 15 18:12 0 >/dev/pts/1

l-wx------ 1 root root 64 Nov 15 18:12 1 >/root/testdelete.py (deleted)

lrwx------ 1 root root 64 Nov 15 18:12 2 >/dev/pts/1

恢复 *** 作:

cp 1 /tmp/testdelete.py

查看文件:

[root@21yunwei_backup fd]# cat  /tmp/testdelete.py

hello  py

hello delete

恢复完成。

您好,如果脚本运行后把脚本删了,那么可能会出现一些问题。首先,脚本删除后,可能会导致程序无法正常运行,因为脚本是程序的一部分,它包含了程序的指令和语句,如果脚本被删除,程序就无法正常运行。其次,脚本删除后,可能会导致数据丢失,因为脚本中可能包含了一些数据,如果脚本被删除,这些数据也会被删除,从而导致数据丢失。此外,脚本删除后,可能会导致程序安全性降低,因为脚本中可能包含了一些安全控制,如果脚本被删除,这些安全控制也会被删除,从而导致程序安全性降低。因此,建议您在删除脚本之前,先考虑清楚,以免造成不必要的麻烦。

1、查看进程“打开”的文件 (方法1): 1)pidof programe-name(获得想了解的进程(programe-name)的PID) 或ps -aux|grep programe-name(获得想了解的进程(programe-name)的PID) 找出进程的PID 2)cd /proc/$PID/fd(会看见文件描述符) 3)ls -l 得到文件描述符指向的实际文件,即当前进程打开的文件2、查看进程“打开”的文件 (方法2): 1)获得想了解的进程的PID方法同上 2)lsof -c programe-name 或lsof -p $PID


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7103502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存