系统的重要文件/etc/inittab被删除了--急救办法!
如果在生产环境中,系统的重要文件/etc/inittab被删除了(系统还没重启,崩溃前),不要急,下面告诉你该如何处理。
1、模拟误删除文件
[root@localhost ~]# rm -rf /etc/inittab
[root@localhost ~]# cat /etc/inittab
cat: /etc/inittab: No such file or directory
2、新建该文件,并查看对应包的相关信息
[root@localhost ~]# touch /etc/inittab
[root@localhost ~]# rpm -qf /etc/inittab //这个命令可以查询目标配置文件属于哪个包
initscripts-8.45.19.EL-1
3、确定了包的相关信息,挂载安装光盘,进行查找
[root@localhost ~]# cd /mnt/yum/
[root@localhost yum]# ll
total 0
[root@localhost yum]# cd ~
[root@localhost ~]# mount /dev/cdrom /mnt/yum
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/yum/Server/
[root@localhost Server]# cp initscripts-8.45.30-2.el5.i386.rpm /tmp
cp: overwrite `/tmp/initscripts-8.45.30-2.el5.i386.rpm'? y
[root@localhost Server]# cd /tmp
[root@localhost tmp]# ll
total 1680
drwx------ 2 root root 4096 Feb 17 13:45 bin
drwx------ 9 root root 4096 Feb 17 13:45 etc
drwx------ 3 root root 4096 Feb 17 13:53 gconfd-root
-r--r--r-- 1 root root 1651907 Feb 17 15:41 initscripts-8.45.30-2.el5.i386.rpm
drwx------ 2 root root 4096 Feb 17 13:53 keyring-06YG9F
drwx------ 2 root root 4096 Sep 26 08:44 keyring-elqVM1
drwx------ 2 root root 4096 Sep 26 08:08 keyring-jTNbTb
drwx------ 3 root root 4096 Feb 17 13:45 lib
srwxr-xr-x 1 root root 0 Feb 17 13:54 mapping-root
drwx------ 2 root root 4096 Feb 17 15:38 orbit-root
drwx------ 2 root root 4096 Feb 17 13:45 sbin
drwx------ 2 root root 4096 Feb 17 13:53 ssh-ROxTuK6949
drwx------ 4 root root 4096 Feb 17 13:45 usr
drwx------ 4 root root 4096 Feb 17 13:45 var
drwx------ 2 root root 4096 Feb 17 13:54 virtual-root.2eelUV
drwxrwxrwt 2 root root 4096 Feb 5 12:19 VMwareDnD
drwx------ 2 root root 4096 Feb 17 13:53 vmware-root
4、解压包的信息
[root@localhost tmp]# rpm2cpio initscripts-8.45.30-2.el5.i386.rpm |cpio -imd
10748 blocks
[root@localhost tmp]# ll
total 1680
drwx------ 2 root root 4096 Feb 17 13:45 bin
drwx------ 9 root root 4096 Feb 17 13:45 etc
drwx------ 3 root root 4096 Feb 17 13:53 gconfd-root
-r--r--r-- 1 root root 1651907 Feb 17 15:41 initscripts-8.45.30-2.el5.i386.rpm
drwx------ 2 root root 4096 Feb 17 13:53 keyring-06YG9F
drwx------ 2 root root 4096 Sep 26 08:44 keyring-elqVM1
drwx------ 2 root root 4096 Sep 26 08:08 keyring-jTNbTb
drwx------ 3 root root 4096 Feb 17 13:45 lib
srwxr-xr-x 1 root root 0 Feb 17 13:54 mapping-root
drwx------ 2 root root 4096 Feb 17 15:38 orbit-root
drwx------ 2 root root 4096 Feb 17 13:45 sbin
drwx------ 2 root root 4096 Feb 17 13:53 ssh-ROxTuK6949
drwx------ 4 root root 4096 Feb 17 13:45 usr
drwx------ 4 root root 4096 Feb 17 13:45 var
drwx------ 2 root root 4096 Feb 17 13:54 virtual-root.2eelUV
drwxrwxrwt 2 root root 4096 Feb 5 12:19 VMwareDnD
drwx------ 2 root root 4096 Feb 17 13:53 vmware-root
5、进行文件替换与简单修改
[root@localhost tmp]# cp ./etc/inittab /etc/
cp: overwrite `/etc/inittab'? y
[root@localhost tmp]# cat /etc/inittab
恢复成功!!!!!!!
补充说明:
cpio参数说明:
-t 列出的意思,和"--list"等同,注意,此时列出的是“相对路径”
-i 抽取的意思,和"--extract"等同
-d 建立目录,和"--make-directories"等同
-v 冗余信息输出,和"--verbose"等同
rpm参数说明:
-q --query 查询
-l --list 列出
-f --file 指定文件
-p --package 指定rpm包
========================================================================
以前习惯了用tar来打包程序,cpio用来打包程序还是需要习惯一下.查了查IBM的文档,将一些常用cpio使用列在这里.
解压整个cpio文档:cpio -idmv < aaa.cpio
列出归档中所有文件信息:cpio -itv < aaa.cpio
释放出归档中指定文件列表(文件名称要与归档使用的路径相同,如相对路径等):cpio -idmv filenlist < aaa.cpio
========================================================================
cpio命令用途:把文件拷贝进出归档存储器及目录。本文档描述了 AIX cpio 命令和System V cpio 命令。
格式:
1> cpio -o [ a ] [ c ] [ -E{force|ignore|warn} ] [ v ] [ B | C Value ] <FileName >Output
2> cpio -i [ b ] [ c ] [ d ] [ -E{force|ignore|warn} ] [ f ] [ m ] [ M ] [ r ] [ s ] [ t ] [ u ] [ v ] [ S ] [ 6 ] [ B | C Value ] [ Pattern... ] <Input
3> cpio -p [ a ] [ d ] [ -E{force|ignore|warn} ] [ l ] [ m ] [ M ] [ u ] [ v ] Directory <FileName
概述:
cpio 命令把文件从 cpio 归档中拷贝进出。cpio 归档可能跨越多个卷。-i、-o 和 -p 标志选择了要执行的操作。
注: 如果把输出从 cpio 命令重定向到一个特殊文件(设备),那么应该把输出重定向到一个原始设备而不是一个块设备。因为写块设备是异步地完成的,没有办法知道是否到达了设备的末端。
注: cpio 命令由于 XPG/4 和 POSIX.2 标准的限制,当文件的大小超过 2G 时是不能启用的。
cpio 不保存任何稀疏分配的文件的稀疏特性。任何在恢复前原本稀疏的文件将在文件系统中根据大小分配所有的空间。
cpio -o 命令:从标准输入中读出文件路径名并且把这些文件连同路径名和状态信息拷贝到标准输出中。避免给予cpio 命令由许多唯一链接的文件组成的路径名,因为可能没有足够的存储器来跟踪它们,并可能会导致链接信息的丢失。
cpio -i 命令:从标准输入中读入一个由 cpio -o 命令创建的归档,并且从中拷贝和 Pattern 参数相匹配的文件连同名称。这些文件被拷贝进当前目录树中。您可以列出多个的 Pattern 参数,通过使用 ksh 命令中描述的文件名符号表示法。注意在这个应用程序中,特殊字符 * (星号),? (问号),和 [...] (方括号和省略号)除了在 ksh 命令中描述的使用,还匹配路径名中的 / (斜杠)。 Pattern 参数的缺省值是 * (星号),即选择输入中所有文件。在表达式例如 [a-z] 中,减号意味着根据当前的整理序列贯穿。
一个整理序列可以定义字符范围中使用的同等类。
cpio -p 命令:从标准输入中读入文件路径名并且把这些文件拷贝到由 Directory 参数指定的目录中。指定的目录必须已经存在。如果这些路径名包括了不存在的目录名,您必须用 d 标志来创建指定的目录。
注: 只要拥有 root 用户的权力,就可以拷贝特殊文件。
参数:
Directory 指定目录。
<FileName 指定文件名列表,cpio 命令用来作为输入。
>Output 指定输出设备,例如磁盘或者文件。如想获得更多关于使用磁带设备的信息,请参考 rmt 特殊文件。
<Input 指定输入设备(这里 Input 是由 cpio -o 命令创建的 Output 文件)。如想获得更多关于使用磁带设备的信息,请参阅 rmt 特殊文件。
Pattern 指定命令使用的方式(如同 ksh 命令中描述的)。 Pattern 参数的缺省值是 * (星号),即选择 Input中所有的文件。
标志:
所有的标志都必须列在一起,中间没有空格。以下 -o、-i 和 -p 标志不是所有的都可以一起使用。
a 源文件的访问时间重新设置为先前的时间。
b 交换字节和半字。
注: 正在处理的文件中如果有奇数个字节或者半字,那么数据会丢失。
B 执行使用 512 字节的块输入输出到一个记录。
注:当使用 B 或 C 选项来抽取或是创建一个磁带归档时,块因子数必须是该磁带设备的物理块大小的倍数。
当使用 B 或 C 选项从磁带抽取一个归档时,块因子数必须不大于归档在磁带上的大小。
B 标志和 C 标志是相互排斥的。如果把两者列在一起,那么 cpio 命令将使用标志列表中的后者。
c 以 ASCII 字符的形式读写头信息。如果 cpio 归档是使用 c 标志创建的,它必须使用 c 标志来抽取。
CValue 执行由 Value 参数定义的 512 字节的倍数个字节到一个记录的块输入输出。例如,-C2 标志改变块输入输出到记录的大小为 1024 字节。
d 创建需要的目录。
-E -E 选项需要下列参数中的一个。如果您省略了 -E 选项,则warn 是缺省的 cpio 行为。
force
如果文件的范围属性不能保存,对文件的抽取或者拷贝操作就会失败。
ignore
忽略保存范围属性中的任何错误。
warn
如果文件的空间保留或者固定范围大小无法保存,就发出一个警告。这是缺省的行为。
f 拷贝除了匹配 Pattern 参数的所有文件。
l 任何可能的时候,链接文件而不是拷贝他们。这个标志只可以和 cpio -p 命令一起使用。
m 保留先前的文件修改时间。这个标志在拷贝目录时不起作用。
M 即使目录被拷贝,保留先前文件的修改时间。
r 交互式重命名文件。如果您不想改变文件名,输入单个句点或者按 <Enter> 键。在后一种情况下, cpio 命令不拷贝那个文件。
s 交换字节。这个标志只和 cpio -i 命令一起使用。
注: 如果正在处理的文件中有奇数个字节,数据可能丢失。
S 交换半字。这个标志只有在 cpio -i 命令中可用。
注: 如果正在处理的文件中有奇数个半字,数据可能丢失。
t 创建一个目录。这个操作不拷贝任何文件。
u 无条件拷贝。旧文件用同样的名字取代新文件。
v 列出文件名。如果和 t 标志一起使用,输出看起来和 ls -l 命令相似。
6 处理一个旧文件(例如,一个以 UNIX 第六版格式写的文件)。这个标志只和 cpio -i 命令一起使用。
退出状态:
这个命令返回以下退出值:
0 成功完成。
>0 有错误发生。
示例:
要拷贝文件到磁盘上,输入
cpio -ov <filenames >/dev/rfd0
以压缩格式拷贝有 filenames 文件中列出的路径名的文件到磁盘(>/dev/rfd0)上。v 标志使得 cpio 命令显示它所拷贝的每一个文件的名字。这个命令在拷贝文件的备份时有用。磁盘必须已经格式化,但不必包含一个文件系统或已被安装。
注:uid 和 gid 的大小超过 65535 的文件不能用 cpio 命令归档。在这种情况下,使用者应该使用 backup 和 restore。
把当前目录中的文件拷贝到磁盘上,输入:
ls *.c | cpio -ov >/dev/rfd0
拷贝当前目录中所有名字以 .c 结尾的文件。
要拷贝当前目录和所有的子目录到磁盘上,输入:
find . -print | cpio -ov >/dev/rfd0
这将保存以当前目录(.)开始的目录树,并且包含它的所有子目录和文件。输入这个命令会更快:
find . -cpio /dev/rfd0 -print
-print 条目显示每一个被拷贝的文件的名字。
要用 cpio 命令列出已经保存到磁盘上的文件,输入:
cpio -itv </dev/rfd0
这显示先前保存到 /dev/rfd0 的,cpio 命令格式的文件的目录。这个清单和 ls -l 命令生成的长目录清单相似。只列出文件路径名,只要使用 -it 标志。
要从磁盘拷贝先前用 cpio 命令保存的文件,输入:
cpio -idmv </dev/rfd0
这将把先前用 cpio 命令保存到 /dev/rfd0 文件的文件拷贝回文件系统(指定 -i 标志)。d 标志在目录树被保存时,允许 cpio 命令创建适合的目录。 m 标志在保存文件时,保持最后的修改时间有效。 v 标志使得 cpio 命令显示每一个被拷贝的文件名。
从磁盘上拷贝选择的文件,输入:
cpio -i "*.c" "*.o" </dev/rfd0
这样从磁盘上拷贝以 .c 或 .o 结束的文件。注意,模式 “*.c” 和 “*.o” 必须附上引号以阻止 shell 把 * (星号)作为一个模式匹配字符。 cpio 命令自己解码模式匹配字符,是一种特殊的情况。
要从磁盘拷贝文件时重命名文件,输入:
cpio -ir </dev/rfd0
-r 标志使得 cpio 命令询问您是否要在从磁盘拷贝文件前重命名每个文件。例如,消息:
Rename <prog.c>
询问是否要在以 prog.c 名字保存的文件被拷贝时给它一个新的名字。如果想重命名这个文件,输入新名字,按 Enter 键。如果想保持同样的名字,必须再次输入那个名字。要根本避免拷贝那个文件,按 Enter 键。
要拷贝目录和它的所有子目录,输入:
mkdir /home/jim/newdir
find . -print | cpio -pdl /home/jim/newdir
这将复制当前的目录树,包括当前的目录和它的所有子目录及文件。复本放在新的 /home/jim/newdir 目录中。l 标志使得 cpio 命令在可能时链接文件而不是拷贝它们。
注: 对于 9348 Magnetic Tape Unit Model 12,cpio 的性能可以通过改变缺省的块大小来提高。如果想改变块大小,输入下面的命令行:
chdev -1 <device_name> -a block_size=32k
文件: /usr/bin/cpio 包含 cpio 命令。
========================================================================
收藏文章摘自:http://blog.csdn.net/ganmao/article/details/2246568
系统的重要文件/etc/inittab被删除了--急救办法!的更多相关文章
- 不小心改了Xcode系统的头文件,运行报错,解决办法
- xp下删除windows7,无法删除windows7文件夹,无法删除windows7文件,双系统卸载,取得文件权限
http://blog.csdn.net/lanmanck/article/details/5722050 ---------------------------------------------- ...
- Linux系统下/tmp目录文件重启后自动删除,不重启自动删除10天前的/TMP的文件(转)
/tmp目录文件重启后自动删除现在知道有ubuntu和solaris系统source:http://blog.chinaunix.net/uid-26212859-id-3567875.html经常会 ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
- Windows、Linux下文件操作(写、删除)错误的产生原因、及解决方法
catalog . 引言 . Linux平台上涉及的File IO操作 . Windows平台上涉及的File IO操作 0. 引言 本文试图讨论在windows.linux操作系统上基于C库进行文件 ...
- CentOS系统下各文件夹的作用
linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...
- [转]C# FileSystemWatcher监控指定文件或目录的文件的创建、删除、改动、重命名等活动
觉得这个很常用..比如一些软件. http://www.rabbit8.cn/DoNet/407.html FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删 ...
- 关于Linux系统清理/tmp/文件夹的原理
转自:http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html 我们知道 ...
- linux系统中,文件的三种特殊权限
背景介绍 在linux系统中,我们熟知有rwx三种权限,对应所有者,同组用户,其他用户三种用户的权限,一共9个位来指定一个文件的权限情况,通过chmod xxx 来更改权限属性,其中xxx是已八进制表 ...
随机推荐
- exists 的简单介绍
准备数据: CREATE TABLE Books( BookID number, BookTitle VARCHAR2(20) NOT NULL, Copyright varchar2(20) ) I ...
- php strnatcasecmp()函数 语法
php strnatcasecmp()函数 语法 作用:使用"自然"算法来比较两个字符串(不区分大小写):直线电机优势 语法:strnatcasecmp(string1,strin ...
- PHP curl_escape函数
curl_escape — 对给定的字符串进行URL编码. 说明 string curl_escape ( resource $ch , string $str ) 该函数对给定的字符串进行URL编码 ...
- webpack使用问题记录
1.版本问题 webpack的安装并不是越新越好.当使用最新版本时不使用配置文件,直接编译不生成文件甚至报错:使用3.12版本时编译文件可以成功但是不生成新文件:使用 3.5.3 版本时成功且生成新文 ...
- python数据分析中常用的库
Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...
- php如何获取服务器端的一些信息
<?php echo "服务器端的IP地址是:<br />"; echo $_SERVER['SERVER_ADDR']; echo "服务器端的端口号 ...
- s11 day106-107 RBAC模块
一.登录 把权限存在session中 1. rbac models from django.db import models class Permission(models.Model): " ...
- 【刷题笔记】LeetCode 48. Rotate Image
题意 原地顺时针翻转一个 n*n 的矩阵 图解 下面例子中用 5*5 矩阵做示例,如下图,我们要把该矩阵顺时针翻转90度,并且不能使用另外的矩阵空间来暂存数据,而是原地改变矩阵中数值. 我的想法是这样 ...
- Python中的装饰器,迭代器,生成器
1. 装饰器 装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象. 强调装饰器的原则:1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式 装饰器的目标:在遵循1和2的 ...
- PAT甲级【2019年3月考题】——A1156 SexyPrimes【20】
Sexy primes are pairs of primes of the form (p, p+6), so-named since “sex” is the Latin word for “si ...