本文主要是介绍恢复被删除文件(以/var/log/messages为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果文件被删除,并且生成文件的进程还在(没有被重启),则通过本方法大概率可以恢复。这里以/var/log/messages日志文件被attackers给删了,我想知道他干了什么坏事,如果不恢复日志文件将不得而知(这里纯属演义哈,当然还有其他方式方法获知,这里不赘述)。
首先通过lsof查看被删除文件关联进程的PID
lsof |grep /var/log/messages
查找被删除的日志文件的文件句柄
ls -l /proc/75518/fd
恢复文件
cp /proc/75518/fd/5 /var/log/messages# 验证文件是否恢复(我在做本次试验前已经将messages文件备份为了messages_bakll /var/log/messages-rw-r--r-- 1 root root 2364528 12月 15 14:55 messages
-rw------- 1 root root 4415753 12月 12 03:17 messages-20231212
-rw------- 1 root root 2360532 12月 15 14:46 messages_bak
为了更直观对比恢复后的文件以及备份文件之间的区别,我下载并通过compare工具对比如下:
很显然,文件完全恢复被删除前的数据。
再次提醒,这种方法仅在进程仍在运行的情况下有效。如果进程已经停止,你可能需要重新启动 rsyslogd 或者考虑使用其他手段来恢复日志。
这篇关于恢复被删除文件(以/var/log/messages为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!