Linux中文件打包及备份

一、打包归档命令 tar

    什么是 tar 命令

   tar 命令可以为 Linux 的文件和目录创建档案。利用 tar,可以为某一种特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

   语法

SYNOPSIS
       tar [OPTION...] [FILE]...

   选项

- c 建立打包档案
- x 解压
- t 查看打包文件中的内容
- r 向压缩归档文件末尾追加文件
- u 更新原压缩包中的文件
- A 追加 tar 文件值归档
- z 有 gzip 属性的
- j 有 bz2 属性的
- J 有 xz 属性的
- Z 有 compress 属性的
- v 显示过程
- O 将文件解开到标准输出
- N <日期格式 > 或 - -newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里
- f (此参数是必须使用的)该参数是最后一位,后面只能接档案名

   给大家举例子加深理解

  1、将文件 file4 以 .gz 方式压缩
在这里插入图片描述
  2、将压缩文件 file4.gz 解压并标准输出

在这里插入图片描述
  3、将 /tmp 下比 “2020/03/10” 日期新的文件打包压缩成 .gz 形式的压缩文件

# tar -N "2020/03/10" -zcvf file5.gz /tmp

  4、查看打包文件内容

在这里插入图片描述

   提示:

  1、无论是压缩还是解压过程,’ f ’ 不能漏掉。
  2、在用 -N 时,末尾一定不要遗漏 目录

二、文件备份

    1、文件备份命令 dd :

   用指定大小的块拷贝一个文件,并在拷贝的同时进行制定的转换。

   语法

SYNOPSIS
       dd [OPERAND]...
       dd OPTION

   选项

if = 文件名 输入文件名,缺省为标准输入。即指定源文件。<if = inputfile >
of =文件名 输出文件名,缺省为标准输出。即指定目的文件。<of = outputfile>
ibs = bytes 一次读入 bytes 个字节,即指定一个块大小为 bytes 个字节
obs = bytes 一次输出 bytes 个字节,即指定一个块大小为 bytes 个字节
bs 同时设置读入/输出的块大小为 bytes 个字节
cbs = bytes 一次转换 bytes 个字节,即指定转换缓冲区大小
skip = blocks 从输入文件开头跳过 blocks 个块后再开始复制
seek = blocks 从输出文件开头跳过 blocks 个块后再开始复制
count = blocks 仅拷贝 blocks 个块,块大小等于 ibs 指定的大小

   以下是转换选项

conv = conversion 用指定的参数转换文件
= ascii 转换 ebcdic 为 ascii
= ebcdic 转换 ascii 为 ebcdic
= ibm 转换 ascii 为 alternate ebcdic
= block 把每一行转换为长度为 cbs ,不足部分用空格补充
= unblock 使每一行的长度都为 cbs ,不足部分用空格补充
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swab 交换输入的每对字节
noerror 出错时不停止
notrunc 不截短输入文件
sync 将每个输入块填充到 ibs 个字节,不足部分用空(NUL)字符补齐

   实例

1、将本地 /dev/hdb 整盘备份到 /dev/hdd

# dd if=/dev/hdb of=/dev/hdd

2、将 /dev/hdb 全盘数据利用 gzip 压缩,并保存到指定路径

# dd if=/dev/hdb | gzip > /root/image.gz

3、备份磁盘开始的 512 个字节大小MBR信息到指定文件

# dd if=/dev/hda of=/root/image bs=512 count=1

4、测试硬盘的读写速度

# dd if=/dev/zero bs=1024 count=1000000 of=/root/1G.file

5、确定硬盘的最佳块大小

# dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
# dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
# dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
# dd if=/dev/zero of=/root/1Gb.file bs=8192 count=125000

   2、cpio备份命令

   cpio是用来建立,还原备份档案的工具程序,它可以加入,解开 cpio,img 或 tar 备份档内的文件

   选项

- o 拷贝文件到某个文件或者设备
- c 存储方式 (一种较新的 portable format)方式存储
- v 显示存储过程
- B 以5120字节大小拷贝, 默认是512 ,这样的好处是大文件的存储加快
- i 从某个文件或者设备拷贝出
- d 自动创建目录
- u ( update) 自动新文件覆盖旧文件
- t 查看文件或者设备中的内容

   常用模式

 备份 # cpio -ocvB > [ file | device ]
 还原 # cpio -ivcdu > [ file | device ]
 查看 # cpio -ivct > [ file | device ]

1、检查磁带机上有什么文件并记录到 /tmp/content 中

# cpio -ivctd < /dev/st0 > /tmp/content

2、将磁带上的资料还原回来

# cpio -ivcdu < /dev/st0

   提示

  一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0

猜你喜欢

转载自blog.csdn.net/weixin_45440548/article/details/104923163