第八章 归档用户数据 翻译:hfzheng hfzheng@sohu.com 转载请保留此信息 归档命令概述 为了文件和目录的安全,需要把他们归档一份拷贝到可移动介质例如磁带上。你也需要归档的磁带来恢复丢失的、删除了的或者已经遭到破坏的文件。 系统里面可使用的命令可以很容易地存储、定位和恢复磁带设备或者归档文件中的文件。可用的命令有: tar:创建文件到磁带设备或者归档文件,解出磁带设备或者归档文件中的文件 compress和uncompress:压缩和解压缩一个文件 zcat:查看一个压缩文件 gzcat:解压缩文件的同时查看文件。在命令行方式下解压缩文件,并把解压缩的数据显示在屏幕上。 Zip和unzip:压缩和解压缩文件 Gzip和gunzip:压缩和解压缩文件 Jar:压缩打包多个文件到一个档案文件中 Cpio:从归档文件或者磁带设备中拷贝和解出文件 备注:当归档时,我们应该使用相对路径 使用tar命令归档文件 tar命令从一个称为tar文件的文件中归档或者解出文件。一个tar文件通常是一个磁带设备,但是并不仅限于此,可以是任何文件。 命令格式 tar functions archive_name/tape_device filenames functions 下面是tar使用的functions的详细列表: 功能定义 c创建一个新的tar文件 t列出tar文件中的内容 x从tar文件中解出指定的文件 f指定档案文件或者磁带设备名,默认的磁带设备是/dev/rmt/0 v详细列出tar文件中的内容 创建到磁带设备、查看、恢复彩带设备中的一个目录 为了创建一个user1目录的磁带档案文件,使用默认磁带设备,执行下面命令: $ /export/home $ tar cv user1 查看拷贝到磁带中的目录的内容,执行下面的命令: $ tar t 如果user1目录被意外删除或者破坏,你可以执行以下命令从归档磁带解出来目录的内容来恢复得到整个目录: $ cd /export/home $ tar xv user1 通常来说,系统管理员一般在夜间对home目录进行归档,但是,你也可是在平时就归档你的home目录的内容,以便如果一个文件偶然被删除后,你可以快速恢复。 创建到归档文件中、从归档文件中查看和恢复文件 tar命令也可以在硬盘中创建一个归档文件,可以和其他用户共享该文件,或者附加该文件作为一个邮件的消息。 $ cd $ tar cvf files.tar file1 file2 file3 上面的例子中,文件file1,file2和file3保存到一个称为files.tar的文件中。需要查看该文件的内容,执行下面的命令: $ tar tf files.tar 下面的例子显示如何解出归档文件中的文件到当前目录: $ tar xvf files.tar 使用compress命令压缩文件 compress命令用于压缩文件,减少了文件大小。和大文件打交道时非常有用,可以节省硬盘空间,通过网络传送时也可以减少传送时间。 可以压缩的比例根据文件类型的不同而不同,对于文本文件而言,通常可以压缩60-80%。当一个文件被压缩后,该文件将被一个带.Z扩展名的文件代替,注意,文件的所有者和修改时间并不改变,尽管文件的内容已经完全改变了。 命令格式 compress filename 压缩一个文件 下面的例子用来压缩一个名为files.tar的文件: $ compress –v files.tar 新创建的压缩文件,将用文件files.tar.Z代替原来的文件。带扩展名的命名传统是为了提醒用户该文件已经被压缩过了。在没有解压缩之前不能查看和打印。 备注:压缩一个已经压缩了的文件将使文件变得更大。 使用uncompress命令解压缩文件 uncompress命令用于恢复一个压缩文件到它原来的状态。 命令格式 uncompress –c filename 下面的例子用来解压缩一个名为files.tar.Z的文件: $ uncompress files.tar.Z 查看一个压缩文件的内容 使用带-c参数的uncompress命令可以显示一个压缩文件的内容到屏幕上,而不是解压缩.Z文件。 $ uncompress –c files.tar.Z | more 使用zcat命令查看文件 zcat命令也可以查看一个由compress命令创建的文件,zcat命令翻译压缩数据,并把压缩之间的文件内容显示在屏幕上,在运行zcat命令之后,压缩文件的内容并不发生变化,仍然以压缩方式存储在硬盘上。 命令格式 zcayt –c filename 查看一个压缩文件的内容 要查看一个压缩文件的内容,执行下面的命令: $ zcat file.tar.Z | tar xvf – 使用jar命令压缩文件 jar命令和tar命令相类似,但是它在同一步骤中压缩文件,该命令可以拷贝和压缩多个文件到一个归档文件中,Zip应用程序可以读取jar文件。 备注:最初是为java编程人员使用的,用来一次下载多个文件,而不是下个各个分立的文件,jar命令是Solaris操作环境下的标准命令,在其他任何安装有java虚拟机的系统中都可以使用。 命令格式 jar命令的格式和tar命令语法几乎相同: jar options output_file filenames/directorys options: jar命令的选项: 选项定义 M不创建清单 C创建一个新的jar文件 T列出jar文件的内容 X从jar文件中解出指定的文件 F指定jar文件 V执行时显示详细信息 其他工具 一个更为有效的压缩工具就是zip和gzip,他们可以创建压缩比更高的压缩文件。 使用zip命令 zip命令和jar命令相类似,都是用来压缩命名的文件,不同之处在于zip是一个unix工具,而jar则是一个java应用工具。 当使用zip命令压缩文件时,文件名称将加上扩展名.zip。 备注:你可以在命令行下键入zip和unzip来列出每个命令中的所有选项。 命令格式: zip filename filename 例如: $ zip filename1 filename2 filename3 filename4 使用gzip命令 当使用gzip命令压缩文件时,文件名称将加上扩展名.gz。 命令格式: gzip filename filename filename 例如: $ gzip filename1 filename2 filename3 filename4 恢复一个gzip文件 恢复一个由gzip命令压缩的文件,使用gunzip命令: $ gunzip filename.gz 使用cpio命令 cpio命令用来归档文件到磁带或者档案文件中,或者从磁带和档案文件中解出文件。 Cpio命令的优点有: 1、压缩数据到磁带上,比tar有效 2、在恢复文件时跳过磁带上的坏点 3、可以写不同头文件格式,以便于在不同系统之间移植 4、可以创建多卷磁带 5、可以归档文件而且不改变文件的访问时间 命令格式 cpio options filenames options: 下面列出了在cpio命令中可以使用的选项:命令定义 o创建一个文件用于归档,拷贝文件列表或者路径名到磁带设备 I从归档文件或者磁带中解出文件 C以ASCII模式读取头信息,以用于移植 T列出文件内容 V用和ls –l命令相类似的格式打印出文件名称列表 M message当达到媒体介质末尾和需要的工作已经完成后,发出一个消息 P读取磁带设备或者文件以获得路径名 A当被复制后重新设置文件的访问时间 I filename从文件filename读取内容作为输入档案 O filename把cpio命令的输出送filename文件 备注:在cpio命令行中,必须指定o、I、p其中之一。 创建文件档案 下例展示了结合使用find和cpio命令来为当前目录的内容创建一个归档,并把它拷贝到dir.list文件中。 $ find . | cpio –o dir.list 你也可是联合使用find和cpio命令来为那些在上个星期被修改的文件创建一个归档,并把它拷贝到modify.list文件中。 $ find . –mtime -7 | cpio –ocv modify.list 下面的例子显示了如何列出以上刚创建的归档文件中的内容: $ cpio –ivt -I dir.list $ cpio –ivt -I modify.list 拷贝一个目录的所有文件到磁带中 下面示例描述了如何使用cpio命令拷贝文件和目录到磁带中 $ cd /export/home/usr1 $ ls | cpio –oc –O /dev/rmt/0 列出一个磁带的内容,执行下面命令: $ cpio –civt -I /dev/rmt/0 表中的内容列出了磁带中包含的每个文件的八部分的信息,第一部分用八进制模式给出了访问权限,第二部分给出了文件的所有者,第三部分给出了文件的字节数,第四、五、六部分给出了文件上次修改的月份、日期、时间。最后一部分则给出了文件的名称。 从磁带中恢复文件 需要从磁带中恢复文件,首先你要进入文件放置的位置,然后执行下面的命令: $ cpio –icv -I /dev/rmt/0 卷管理特性 为了存储和恢复在软盘或者CDROM中的文件,Solaris操作环境提供了卷管理特性。 卷管理为普通用户处理软盘和CDROM中的数据提供了一种标准方法。利用卷管理特性,你可以自动访问你的软盘和CDROM。 备注:如果系统中的卷管理没有启动,则只有超级用户才能访问软盘和CDROM。 卷管理服务由一个名为vold的守护进程调用。超级用户可以在任何系统中启动或者停止该进程,默认情况下,卷管理服务总是启动的,这样对于普通用户而言,可以自动管理访问软盘和CDROM。 检测可移动介质设备 当我们在软盘驱动器中插入软盘或者往CDROM中放入光盘时,卷管理器需要检测新设备以提供对该设备的访问。 卷管理CDROM进行自动检测,不过对于软盘而言,卷管理器并不会自动检测是否插入了新的磁盘,需要你每次插入磁盘的时候通知卷管理器。 备注:自动检测磁盘需要额外的读操作,这将会很快磨损坏软盘驱动器。 通知卷管理器你已经插入了一张新磁盘使用volcheck命令。 命令格式 volcheck options device_pathname 例如,要通知卷管理器去检查你在软盘驱动器里新插入的介质,执行如下命令: $ volcheck-v /dev/disk volcheck命令反馈以下消息之一: 1、如果磁盘插入到驱动器中,volcheck命令显示消息:/dev/disk has media 2、如果驱动器中没有磁盘,volcheck命令显示消息:/dev/disk has no media 访问可移动介质设备 接下来的部分讲述如何访问可移动介质设备 CDROM和卷管理 当卷管理器自动检测到CDROM中有光盘存在,自动把该CDROM放在目录树中一个名为/cdrom标准目录下。 你可以使用cd命令进入到该目录,即可立即访问光盘中的所有文件。 访问本地CDROM驱动器中的文件: 1、在驱动器中放入光盘(贴有标签面朝上),卷管理器自动把它放在目录/cdrom下; 2、在终端窗口中,键入命令cd /cdrom/cdrom0并按回车; 3、键入ls命令并按回车,将显示/cdrom/cdrom0下的所有文件。 备注:如果在CDE文件管理器正在运行,则将弹出一个新的文件管理器窗口来显示CDROM的内容,你可以在窗口方式或者命令行方式访问数据。 软盘和卷管理 卷管理并不会自动检测软盘驱动器中是否放入了磁盘,你必须使用volcheck命令来通知卷管理器去检测驱动器。如果磁盘存在,卷管理器将把磁盘放在目录树中一个名为/floppy标准目录下。你可以使用cd命令进入到该目录,即可立即访问磁盘中的所有文件。 访问磁盘中的文件: 1、在驱动器中放入已经格式化过的磁盘(贴有标签面朝上); 2、键入volcheck并按回车,卷管理器将把磁盘放在目录/floppy下; 3、键入cd /floppy并按回车; 4、键入ls回车,将显示磁盘名; 5、键入cd disk_name回车; 6、键入ls回车,显示所有在磁盘上的文件名称,可以使用cp命令来拷贝磁盘上的文件。 备注: 1、如果没有磁盘在驱动器中,volcheck将显示一条错误信息。 2、你可以从命令行方式访问磁盘上的文件,也可以从文件管理器窗口中的文件菜单中选择打开磁盘来访问磁盘上的文件。 弹出可移动介质设备 一旦以完成了对CDROM和磁盘的操作,可以使用eject命令来移去光盘和软盘。 弹出CDROM 从驱动器中弹出光盘: 1、在CDROM文件管理器窗口中单击文件,并选择弹出(eject)选项; 或者: 1、关闭CDROM文件管理器窗口; 2、键入cd命令退出/cdrom目录; 3、键入eject cdrom回车,几秒钟之后,光盘将从驱动器中弹出。 弹出软盘 要弹出软盘: 1、在磁盘文件管理器窗口中单击文件,并选择弹出(eject)选项; 或者: 1、关闭磁盘文件管理器窗口; 2、键入cd命令退出/floppy目录; 3、键入eject floppy回车,几秒钟之后,磁盘将从驱动器中弹出或者显示一个窗口,告诉你现在可以手动弹出磁盘。 设备忙信息: 如果CDROM或者磁盘没有从驱动器中弹出并且显示了一条“device busy”消息,你可能还在CDROM或者磁盘的工作目录中。 当你处于CDROm或者磁盘的工作目录中时,不可以弹出CDROM和磁盘。 要查看你是否处于/cdrom和/floppy目录中,可以使用pwd命令,如果你处于该目录中,使用cd命令来退出该目录。
|