linux使用lsof恢复误删的nginx日志文件——筑梦之路

前提条件

确保当前nginx进程运行中

处理流程

处理过程

 1. 确保nginx进程在运行

systemctl  status  nginx  

ps -ef | grep  nginx  

2. 删除nginx日志文件

rm -f /var/log/nginx/access.log

3. lsof恢复删除的日志文件

# 查看进程

lsof | grep /var/log/nginx/access.log

可以看到,nginx主进程号,因为nginx进程没有退出,该文件描述符还未被释放,所以还是可以恢复的,仔细看行末文件名多了一个deleted被删除的标记

进入linux中一个管理所有进程的目录,/proc,找到对应的进程id目录(父亲进程id),进入其管理文件描述符的地方。比如nginx主进程号1439

cd /proc/1439/fd  && ls -lh

看到的软连接文件5,就是对应的刚刚误删掉的access.log文件,使用cat命令恢复日志文件

# 恢复此文件描述符的数据,到日志文件即可完成文件恢复

cat 5 > /var/log/nginx/access.log

这里以nginx为例,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值