如果有进程正在使用的文件,如果被误删了,可以找回。如果没有进程在使用,就无法找回被误删的文件了。
假如/var/log/messages文件被误删了:
1.查询正在使用该文件的进程。
[root@www]# lsof |grep message
rsyslogd 1717 root 1w REG 8,2 243321 654968 /var/log/messages
2.根据查询结果,是PID为1717的进程正在使用该文件。进入该进程/proc下的目录/proc/1717/fd:
[root@www fd]# ll
total 0
lrwx------ 1 root root 64 Jan 10 14:34 0 -> socket:[11015]
l-wx------ 1 root root 64 Jan 10 14:34 1 -> /var/log/messages
l-wx------ 1 root root 64 Jan 10 14:34 2 -> /var/log/secure
lr-x------ 1 root root 64 Jan 10 14:34 3 -> /proc/kmsg
l-wx------ 1 root root 64 Jan 10 14:34 4 -> /var/log/maillog
l-wx------ 1 root root 64 Jan 10 14:34 5 -> /var/log/cron
3.查询文件1对应的就是messages日志,使用cat 1 > /var/log/messages 拷贝回去,再重启syslogd服务就可以了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接