linux是一个以文件为基础的操作系统,当主机被入侵,hack一定会把日志文件删除,但是极少有黑客会把你的主机关机。恢复/var/log/messages就很重要了。由于linux需要不停的记录日志,所以守护进程已将/var/log/messages加载到了内存。我们通过查看内存就能恢复该文件。以下是步骤。
1、查看/var/log/messages
[root@bogon ~]# ll /var/log/messages
-rw——-. 1 root root 3705 Jul 2 07:46 /var/log/messages
lsof命令是一个查看所有打开文件的命令,这里查看到了该文件
[root@bogon ~]# lsof | grep /var/log/messages
rsyslogd 1683 root 1w REG 8,2 3705 133861 /var/log/messages
这里列出了进程好为1683的进程rsyslogd在内存中使用该文件
2、将/var/log/messages删除
[root@bogon ~]# rm /var/log/messages
rm: remove regular file `/var/log/messages’? y
[root@bogon ~]# ll /var/log/messages
ls: cannot access /var/log/messages: No such file or directory
[root@bogon ~]#
**[root@bogon ~]# lsof | grep messages
rsyslogd 1683 root 1w REG 8,2 5085 133861 /var/log/messages (deleted)**
这里我们看到了该文件已经被标志已经删除。
3、其实该文件还没有被删除,在/proc中还存有副本,通过此可以找回。
[root@bogon fd]# ll
total 0
lrwx——. 1 root root 64 Jul 2 07:58 0 -> socket:[12351]
l-wx——. 1 root root 64 Jul 2 07:58 1 -> /var/log/messages (deleted)
l-wx——. 1 root root 64 Jul 2 07:58 2 -> /var/log/cron
lr-x——. 1 root root 64 Jul 2 07:58 3 -> /proc/kmsg
l-wx——. 1 root root 64 Jul 2 07:58 4 -> /var/log/maillog
l-wx——. 1 root root 64 Jul 2 07:58 5 -> /var/log/secure
通过重定向/proc/1683/fd/1 即可恢复文件
4、恢复文件
]#
[root@bogon fd]# cat /proc/1683/fd/1 > /var/log/messages
此时文件恢复完成