任务:

  • 备份已安装的glibc为RPM包,还原。

准备:

  1. 下载rpmrebuild
  2. 上传至服务器

  链接: https://pan.baidu.com/s/1pKNGnur 密码: wgy9

操作:

  1.以root用户登录

  2.解压rpmrebuild.rar

   #cd/tmp

#unrar x rpmrebuild.rar /usr/lib

  3.修改/usr/lib/rpmrebuild目录下的文件权限。

#cd /usr/lib/rpmrebuild/

#chmod 755 *

  4.创建/opt/ataebackup目录备份原glibc版本信息。

   #mkdir -p /opt/ataebackup
   #rpm -qa |grep glibc > /opt/ataebackup/glibc_version.txt
   #rpm -qa |grep ^nscd > /opt/ataebackup/nscd_version.txt

  5.依次执行以下命令备份原有的glibc。

   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-32bit
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-devel
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-devel-32bit
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-html
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-i18ndata
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-info
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-locale
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-locale-32bit
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-profile
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-profile-32bit
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup nscd

异常处理:

  • 若提示是否继续及输入版本时,请依次输入y和N。例如,执行过程如下:

   /usr/lib/rpmrebuild/rpmrebuild.sh: WARNING: some files have been modified:
   S.5....T c /etc/ld.so.conf
   Do you want to continue ? (y/N) y
   Do you want to change release number ? (y/N) N
   Processing files: glibc-2.4-31.77.88.4
   warning: Could not canonicalize hostname: linux
   Wrote: /opt/ataebackup/x86_64/glibc-2.4-31.77.88.4.x86_64.rpm
   result: /opt/ataebackup/x86_64/glibc-2.4-31.77.88.4.x86_64.rpm

  其中,result行表示备份文件的存放路径。

  • 若系统中未安装相应的包,则不需要备份,系统会提示以下类似信息,请忽略该错误提示。

  atae-mo-slot4:/usr/lib/rpmrebuild # /usr/lib/rpmrebuild/rpmrebuild.sh glibc-html
   /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: glibc-html package in not installed

  • 备份原gblic包时,若提示以下类似信息,请忽略该错误提示。

   linux02:/usr/lib/rpmrebuild # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup glibc-32bit
   Processing files: glibc-32bit-2.4-31.77.88.4.4491.2.PTF.772242
   warning: Could not canonicalize hostname: linux02

  • 备份nscd包时,若提示以下错误信息:

  Processing files: nscd-2.4-31.63.7
   error: File not found: /var/run/nscd/hosts
   RPM build errors:
   File not found: /var/run/nscd/hosts
   /usr/lib/rpmrebuild/rpmrebuild.sh: ERROR: package 'nscd' build failed

   需要手工创建该文件,备份后删除该文件。执行以下命令重新备份nscd包:

  # touch /var/run/nscd/hosts
   # /usr/lib/rpmrebuild/rpmrebuild.sh -d /opt/ataebackup nscd
   # rm /var/run/nscd/hosts

还原:

  1.进入备份目录。

  # cd /opt/ataebackup/x86_64

  2.重新安装旧版本的补丁包。

  部分补丁包原来没有安装,因此无备份文件,忽略错误提示即可。
   查看/opt/ataebackup/glibc_version.txt和/opt/ataebackup/nscd_version.txt中备份的glibc和nscd包的版本信息。以2.4-31.77.88.4版本为例,执行如下命令回退版本:
   # rpm -Uvh --force glibc-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-32bit-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-devel-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-devel-32bit-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-html-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-i18ndata-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-info-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-locale-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-locale-32bit-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-profile-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force glibc-profile-32bit-2.4-31.77.88.4.x86_64.rpm
   # rpm -Uvh --force nscd-2.4-31.77.88.4.x86_64.rpm

  3.检查回退后的glibc库的版本信息。

  # rpm -qa |grep glibc

  如果系统没有安装相应的软件包,则不会被查询到。以版本2.4-31.77.88.4为例,显示结果如下:
   glibc-2.4-31.77.88.4
   glibc-locale-2.4-31.77.88.4
   glibc-32bit-2.4-31.77.88.4
   glibc-profile-32bit-2.4-31.77.88.4
   glibc-devel-2.4-31.77.88.4
   glibc-i18ndata-2.4-31.77.88.4
   glibc-profile-2.4-31.77.88.4
   glibc-html-2.4-31.77.88.4
   glibc-locale-32bit-2.4-31.77.88.4
   glibc-devel-32bit-2.4-31.77.88.4
   glibc-info-2.4-31.77.88.4

 4.检查nscd的版本是否回退。

  # rpm -qa |grep ^nscd
  例如,显示结果如下:
  nscd-2.4-31.77.88.4

  重启操作系统和应用。

rpmrebuild备份glibc的更多相关文章

  1. Linux高级运维 第四章 文件的基本管理和XFS文件系统备份恢复

    4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在windows系统中,查看文件先进入相应的盘符,然后进入文件目录 在windows中,它是多根  c:\    d:\   e ...

  2. 文件的基本管理和XFS文件系统备份恢复

    4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 在WIN中,它是多根  c:\    d:\   e:\ Linux ...

  3. mydumper备份原理和使用方法

    mydumper介绍 MySQL自身的mysqldump工具支持单线程工作,依次一个个导出多个表,没有一个并行的机,这就使得它无法迅速的备份数据. mydumper作为一个实用工具,能够良好支持多线程 ...

  4. 记一次CentOS5.7更新glibc导致libc.so.6失效,系统无法启动

      以下是错误示范,错误过程还原,请勿模仿!!! wkhtmltopdf 启动,提示/lib64/libc.so.6版本过低 $ ./wkhtmltopdf http:www.baidu.com 1. ...

  5. 【linux】之Centos6.x升级glibc

    因为Centos比较保守依赖的glibc最高版本是2.12 rpm -qa|grep glibc strings /lib64/libc.so. |grep GLIBC_ 但是经常我们安装一些源码包, ...

  6. Glibc编译报错:*** These critical programs are missing or too old: as ld gcc

    Binutils版本升级 这里是binutils版本过低导致, 查看已部署版本 上传离线升级包 [root@sdw1 glibc]# tar -zxvf binutils-2.32.tar.gz [r ...

  7. centons6升级gcc和glibc版本

    一.先升级gcc 这里配置yum源来升级 centos6系列更换阿里yum源 1.首先备份原来的cent os官方yum源 cp /etc/yum.repos.d/CentOS-Base.repo / ...

  8. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  9. MySQL 系列(四)主从复制、备份恢复方案生产环境实战

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

随机推荐

  1. zookeeer client 通信协议

    这里主要记录zookeeper client通信协议的.在官方的文档里没找到协议相关部分.这里是记录的协议是通过分析客户端代码得来的. 一.通信流程 客户端发起连接,发送握手包进行timeout协商, ...

  2. CSS 实现流布局以及多列混合布局

    基本流布局 <!DOCTYPE html > <html> <head> <meta charset="utf-8"> <ti ...

  3. python迭代器生成器(三)

    扩展的列表解析语法 今天接着昨天的继续写. 列表解析可以变得更加复杂---例如,它可以包含嵌套的循环,也可能被编写为一系列的for子句.(这里只是简单介绍一下,以后再说这个语法的问题) 例如:构建一个 ...

  4. Javascript之学习笔记每日更新

    1.输出文本 document.write(Date());输出当前时间 2.使用Jacascript改变HTML元素 //定义一个p标签,此p标签带有id元素 <p id="demo ...

  5. (转载)Bonding技术指南

    原文链接:http://www.wushiqin.com/?post=68 一.什么是网卡绑定及简单原理 网卡绑定也称作"网卡捆绑",就是使用多块物理网卡虚拟成为一块网卡,以提供负 ...

  6. App 组件化/模块化之路——如何封装网络请求框架

    App 组件化/模块化之路——如何封装网络请求框架 在 App 开发中网络请求是每个开发者必备的开发库,也出现了许多优秀开源的网络请求库.例如 okhttp retrofit android-asyn ...

  7. JavaScript跨域请求和jsonp请求实例

    <script type="text/javascript" src="./whenReady.js"></script> <sc ...

  8. python基础(5):数字和字符串类型

    今天总结一下数据类型中的数字和字符串型. 预习: 小练习 一.数字(int,float) 在python3中数字类型只有整形,浮点型,复数.而复数在平时的编程中几乎用不到所以我们只要掌握整形和浮点型即 ...

  9. hadoop全分布式环境搭建

    本文主要介绍基本的hadoop的搭建过程.首先说下我的环境准备.我的笔记本使用的是Windows10专业版,装的虚拟机软件为VMware WorkStation Pro,虚拟机使用的系统为centos ...

  10. FreeRTOS——资源管理

    1. 多任务系统存在一个潜在的风险:资源管理. 2. 基本临界区:taskENTER_CRITICAL() 与 taskEXIT_CRITICAL() 或 taskENTER_CRITICAL_FRO ...