linux误删nginx.conf文件恢复方式

 更新时间:2024年01月13日 08:37:56   作者:dounine  
这篇文章主要介绍了linux误删nginx.conf文件恢复方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

当你不小心误删或者错误操作导致nginx.conf文件丢失,而且nginx处于在住运行的状态,在这种情况下我们就可以在内存中获取配置文件。

1.获取nginx进程pid

ps -ef | grep nginx

你会得到如下输出,找到master的pid

root     19812     1  0 7月14 ?       00:00:00 nginx: master process /usr/sbin/nginx
nginx    19813 19812  0 7月14 ?       00:00:26 nginx: worker process
nginx    19814 19812  0 7月14 ?       00:00:33 nginx: worker process
nginx    19815 19812  0 7月14 ?       00:01:15 nginx: worker process
nginx    19816 19812  0 7月14 ?       00:00:55 nginx: worker process
nginx    19817 19812  0 7月14 ?       00:00:04 nginx: cache manager process
root     26171 12446  0 12:56 pts/0    00:00:00 grep --color=auto nginx

如上所示,nginx的主要进程pid为19812

2.查找内存映射

安装gdb工具

yum install gdb -y

接下来我们需要检查进程正在使用哪些内存映射

cat /proc/19812/maps | grep heap
[root@loghub-server tmp]# cat /proc/19812/maps | grep heap
55e0e6760000-55e0e69c2000 rw-p 00000000 00:00 0                          [heap]

可以看到有2处地方,我们只需要关注heap部分。内存位于55e0e6760000-55e0e69c2000之间。

3.转储堆

然后需要转储堆

gdb -p 19812

你会得到一个(gdb)提示。现在在这个提示下使用我们之前记下的地址,地址前需要加0x

(gdb) dump memory /tmp/nginx-memory 0x55e0e6760000 0x55e0e69c2000

4.从转储中获取字符串数据

strings  /tmp/nginx-memory > /tmp/nginx-memory.str

5.查找 Nginx 配置

现在有了内存转储。大多数配置都会有http {一行,现在可以测试下/tmp/nginx-memory.str

grep -A 20 "http {" /tmp/nginx-memory.str
[root@loghub-server tmp]# grep -A 50 "http {" /tmp/nginx-memory.str 
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    #proxy_temp_path  /etc/nginx/temp_dir;
    #proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=1g;
    #proxy_cache_path /etc/nginx/cache_dir levels=1:2 keys_zone=imgcache:500m max_size=1g inactive=1d use_temp_path=off;
    proxy_cache_path /etc/nginx/conf.d/cache levels=1:2 keys_zone=my_zone:100m inactive=3600s max_size=1g;

自己复制出来或者修改下格式之类的,就可以了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网

    这篇文章主要介绍了解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Linux中FTP服务器的搭建教程

    Linux中FTP服务器的搭建教程

    这篇文章主要为大家详细介绍了Linux中FTP服务器的搭建教程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • CentOS7下安装yum源及上传下载命令rz、sz安装方法(图解)

    CentOS7下安装yum源及上传下载命令rz、sz安装方法(图解)

    这篇文章主要介绍了CentOS7下安装yum源及上传下载命令rz、sz安装方法,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • socket unix domain IPC的实例代码

    socket unix domain IPC的实例代码

    下面小编就为大家带来一篇socket unix domain IPC的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux中使用NTP保持精确时间的方法详解

    Linux中使用NTP保持精确时间的方法详解

    Linux系统下,一般使用ntp服务来同步不同机器的时间,NTP 是网络时间协议(Network Time Protocol)的简称,下面这篇文章主要给大家介绍了关于Linux中使用NTP保持精确的时间的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2018-03-03
  • 如何利用Gitlab-ci持续部署到远程机器(详细教程)

    如何利用Gitlab-ci持续部署到远程机器(详细教程)

    这篇文章主要介绍了如何利用Gitlab-ci持续部署到远程机器(详细教程),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Linux中VirtualBox的虚拟机开机自启方式

    Linux中VirtualBox的虚拟机开机自启方式

    本文介绍如何通过创建start.sh脚本并设置开机自启路径,实现VirtualBox虚拟机的开机自动运行,包含检查运行状态、脚本编辑及权限配置步骤
    2025-09-09
  • Linux /etc/passwd详解

    Linux /etc/passwd详解

    文章介绍了Linux系统/etc/passwd文件的结构和字段含义,包括用户名、密码、UID、GID、描述性信息、主目录和默认Shell,UID和GID用于识别和分配权限,描述性信息提供用户相关信息,主目录定义用户登录后的操作权限,而默认Shell则作为用户与系统的交互桥梁
    2024-12-12
  • 浅谈Linux中的chattr与lsattr命令

    浅谈Linux中的chattr与lsattr命令

    下面小编就为大家带来一篇浅谈Linux中的chattr与lsattr命令。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Centos7 mysql数据库安装及配置实现教程

    Centos7 mysql数据库安装及配置实现教程

    这篇文章主要介绍了Centos7 mysql数据库安装及配置实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论