山重水复疑无路,误删文件能恢复! 今天就给大家分享一个在误删/etc目录后,救命止损的数据恢复教程。 一、紧急措施1.如果你是远程登录服务器的,首先要保持连接不被断开。不操作时用vim保持连接状态。 此时虚拟控制终端和ssh连接已经不能建立新连接了。 如下图已经不能登录。 2.拷贝相同版本服务器/etc目录到目标服务器( 版本与配置越相近,接下来的工作量会越小,可以使用rz, wget等其他方式把配置拷贝到服务器。scp等需要验证账户信息已经不能使用 ) 拷贝完成后,可以通过ssh连接,检测是否可以正常连接至服务器(此时使用的账户密码应该是同版本服务器的账户密码) 如出现下图所示,连接失败,可能是selinux导致,临时关闭selinux setenforce 0 此时已经可以正常通过ssh连接至服务器,切换至root账户如下 3.修改selinux配置为关闭状态。/etc/selinux/config 修改为开机不启动 二、系统恢复1.检查fstab文件查看配置文件信息如下: 通过blkid查看设备上所采用文件系统类型,以及挂载设备。 注:对比两图可以发现,信息差别很大, 因为我这两台服务器安装时分区方式不一样。 系统显示没挂载home分区,所以删除需要把配置文件中挂载在home下的那行删除。 以及修改设备名与UUID,以及TYPE 修改/etc/fstab配置文件,如下 配置修改无误的话,重启是可以正常启动 如下图所示,已经可以正常启动(不过此时千万别重启,因为应用配置数据还没恢复) 2.修改网卡信息如果拷贝的网络配置是动态获取IP,并且网卡名称相同,对访问网络还没影响,那么这一步可以跳过,网卡这部分可以放到最后来做,因为你删除配置后,网络暂时还是可以使用的。 这里我拷贝的是静态分配的IP地址,所以需要做一些修改。 下图是可以看到我的网卡名称是ens33 而我的配置中没此网卡配置,相对应的应该是ifcfg-eth0。 备份一份,然后重命名为ifcfg-ens33 重启可能远程断开连接(不同环境重启网络方式可能不太相同,这里是centos7) 看下配置信息 下边是部分解释,可以参考下 修改为如下配置(动态分配) 静态分配 配置以上任意一种方式 动态分配的IP,相对简单一些,如果网关不支持dhcp,或者环境需要是静态的,那么也可以采用静态的。配置静态 IP需要注意,网关如果设置错误,那么可能不能访问网络的哦。 三、应用配置恢复a) Redis 配置数据恢复i. Redis账户数据恢复 1. 首先确定系统中是否还有redis用户。(如果拷贝过来的系统也安装了 redis,那么肯定是会有redis账户) 如果发现有redis用户,以下步骤可以跳过。 1. 如没有redis账户,需添加 redis账户,不然重启redis可能失败。添加redis 账户信息。(仅供参考, centos7环境成功) ii. Redis配置文件恢复 Redis的配置文件恢复相对简单一些,官方提供了CONFIG REWRITE命令重写redis.conf 配置文件。 如果执行命令过程中出现如下提示,不用担心是因为权限的问题。 首先创建redis.conf文件 touch /etc/redis.conf 然后修改文件属性 chown redis:redis /etc/redis.conf 参考官方介绍:https://redis.io/commands/config-rewrite b)mysql配置文件恢复(maraidb)i.mysql账户数据恢复 1. 首先确定系统中是否还有mysql用户。 如果发现有mysqld用户,以下步骤可以跳过。 2.如没有mysql账户,需添加mysql 账户,不然重启mysql可能失败。添加mysql账户信息。(仅供参考, centos7 环境成功) ii.mysql配置文件恢复 1.进程信息获取mysql配置信息 如下 2.mysql参数信息 #上图mysqld进程ID #获取进程映射地址 #dump地址中数据 上边工作做完看下生成的文件如下 查找mysql参数信息 比如 grep datadir ./mem_* 会显示所有包含datadir字符串二进制文件。 vim ./mem_7f18284af000 查找datadir如下,跟进程信息获取参数有部分重复。 查找datadir如下,此块内存跟 ps看到的信息差不多,可以不用记录。 3.创建mysql配置文件 根据以上两种方式获取到配置信息如下 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|