阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

恢复误删除的Nginx日志

196次阅读
没有评论

共计 1618 个字符,预计需要花费 5 分钟才能阅读完成。

昨天遇到了一个面试题 – 如何恢复误删除的 nginx 日志,当时我也只是回答出了大概的思路和步骤。晚上抽时间模拟下误删除和恢复的场景。

首先大概了解下 /proc 目录(记得当时考试 RHCA 的时候,关于这个目录的题目着实不少)。Linux 系统上的 /proc 目录是一种文件系统,即 proc 文件系统,它是一种伪文件系统。里面保存了当前系统内核运行状态的一些信息,可以查看到相关的系统硬件及当前正在运行进程的相关信息,也可以通过更改其中某些文件来改变内核的运行状态。/proc/PID 保存的就是当前正在运行的进程信息,PID 为进程号,当进程结束后相关目录则会消失。

恢复 nginx 误删除的日志就要使用到 /proc/PID 下的某些文件,先来看下该目录下都有哪些内容:

恢复误删除的 Nginx 日志

简单列几个:

– attr  进程的属性
– cmdline 启动时执行的命令
– cwd 当前的工作目录,软链接
– environ 进程执行使用的环境变量
– fd 进程打开的所有文件,文件名为文件描述符,目录中的每个软链接都指向了进程实际打开的文件
– limits 进程的软硬限制
– cgroup 该进程的 cgroup 控制组信息
– status 进程的运行状态信息

恢复 nginx 日志就是使用了 fd 下的某些文件描述符,因为里面每个软连接实际上都是指向了 nginx 运行的时候打开的文件,包括 nginx 的日志文件。
下边模拟下误删除并恢复日志的过程。

查看 nginx 的日志:

    [root@iZ2876x9bezZ ~]# ll /var/log/nginx/

    total 12

    -rw-r–r– 1 root root 6991 Aug 12 12:48 access.log

    -rw-r–r– 1 root root  760 Aug 12 11:44 error.log

删除日志:

恢复误删除的 Nginx 日志

查看 nginx 的进程号:

恢复误删除的 Nginx 日志

查看该进程文件描述符信息:

恢复误删除的 Nginx 日志

可以看到文件描述符为 5 的软链接所指向的文件已经被删除,这个就是需要我们恢复的日志文件。
查看文件内容:

恢复误删除的 Nginx 日志

可以看到整个日志内容,并且新增的日志内容也会增加到该文件描述符内。接下来可以将这些日志内容输出到一个文件内,然后执行 nginx 的 reload 操作,这样可以重新生成一个 access.log 文件,并且新的日志内容输出到该日志文件内。

更多 Nginx 相关教程见以下内容

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-10/124179.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1618字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中