Linux dump命令介绍
dump命令是Linux系统中的一个备份工具,它可以将整个文件系统或者目录备份到指定的设备或者文件中。它的特点是支持增量备份,也就是说,它可以根据备份的层级,只备份上次备份后发生变化的文件,从而节省备份的时间和空间。dump命令只能用于ext2/ext3文件系统,不能用于其他类型的文件系统,如FAT和ReiserFS。
Linux dump命令适用的Linux版本
dump命令在大多数Linux发行版中都是可用的,但是有些发行版可能没有预装这个命令,需要手动安装。例如,在Ubuntu中,可以使用以下命令安装dump:
[linux@bashcommandnotfound.cn ~]$ sudo apt install -y dump
在CentOS中,可以使用以下命令安装dump:
[linux@bashcommandnotfound.cn ~]$ sudo yum install -y dump
注意,CentOS 7和CentOS 8使用的安装工具不同,CentOS 7使用yum,而CentOS 8使用dnf。如果你不确定你的Linux发行版和版本,可以使用以下命令查看:
[linux@bashcommandnotfound.cn ~]$ cat /etc/os-release
Linux dump命令的基本语法
dump命令的基本语法格式如下:
dump [-level#] [-a autosize] [-A file] [-B records] [-b blocksize] [-d density] [-D file] [-e inode numbers] [-E file] [-f file] [-F script] [-h level] [-I nr errors] [-jcompression level] [-L label] [-Q file] [-s feet] [-T date] [-y] [-zcompression level] files-to-dump
或者
dump [-W | -w]
其中,-level#是指定备份的层级,从0到9,0表示完全备份,1到9表示增量备份。-f file是指定备份的输出文件,可以是磁带驱动器,U盘,普通文件或者标准输出。files-to-dump是指定要备份的文件系统或者目录。-W和-w是用于列出需要备份的文件系统。
Linux dump命令的常用选项说明
dump命令有很多选项,可以用于控制备份的过程和结果。这里列出一些常用的选项,更多的选项可以参考dump的手册页。
选项 | 说明 |
---|---|
-0 | 完全备份,相当于-level0 |
-1 | 增量备份,相当于-level1 |
-a | 自动计算磁带的长度,不需要指定-B或者-s选项 |
-A file | 将备份的信息记录到指定的文件中,而不是默认的/etc/dumpdates文件 |
-b blocksize | 指定每个备份记录的块大小,单位是KB,默认是10 |
-B records | 指定每个卷的备份记录数,也就是每个磁带或者文件可以存储的数据量 |
-d density | 指定磁带的密度,单位是BPI(比特每英寸) |
-e inode numbers | 只备份指定的inode号对应的文件 |
-E file | 从指定的文件中读取要备份的inode号 |
-f file | 指定备份的输出文件,可以是磁带驱动器,U盘,普通文件或者标准输出 |
-F script | 指定一个脚本文件,用于在每个卷开始和结束时执行一些操作 |
-h level | 指定要备份的文件系统的最大高度,也就是最大的子目录层数 |
-I nr errors | 指定dump忽略的最大读取错误数,默认是32 |
-j compression level | 指定使用bzip2压缩每个备份记录,压缩等级从1到9,1最快,9最高 |
-L label | 指定备份的卷标,用于区分不同的备份 |
-Q file | 指定一个文件,用于记录备份的统计信息 |
-s feet | 指定磁带的长度,单位是英尺 |
-T date | 指定备份的时间戳,用于增量备份 |
-u | 更新备份的信息到/etc/dumpdates文件中 |
-W | 列出需要备份的文件系统 |
-w | 列出需要备份的文件系统,但不显示上次备份的时间 |
-y | 使用gzip压缩每个备份记录,相当于-z9 |
-z compression level | 指定使用zlib压缩每个备份记录,压缩等级从1到9,1最快,9最高 |
Linux dump命令的实例
下面是一些使用dump命令的实例,展示了不同的备份场景和方法。
完全备份一个文件系统
要完全备份一个文件系统,可以使用-0选项,然后指定输出文件和要备份的文件系统。例如,要备份/dev/sda6到/dev/qft0,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -0 -f /dev/qft0 /dev/sda6
如果要备份到一个普通文件,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -0 -f /path/to/backup_file /dev/sda6
如果要备份到标准输出,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -0 -f - /dev/sda6
增量备份一个文件系统
要增量备份一个文件系统,可以使用-1到-9选项,然后指定输出文件和要备份的文件系统。例如,要备份/dev/sda6到/dev/qft0,只备份上次完全备份后发生变化的文件,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -1 -f /dev/qft0 /dev/sda6
如果要备份/dev/sda6到/dev/qft0,只备份上次增量备份后发生变化的文件,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -2 -f /dev/qft0 /dev/sda6
注意,增量备份需要指定备份的时间戳,可以使用-T选项,也可以使用-u选项自动更新时间戳到/etc/dumpdates文件中。
压缩备份一个文件系统
要压缩备份一个文件系统,可以使用-y,-j或者-z选项,然后指定输出文件和要备份的文件系统。例如,要备份/dev/sda6到/dev/qft0,并使用gzip压缩,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -0 -y -f /dev/qft0 /dev/sda6
如果要使用bzip2压缩,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -0 -j9 -f /dev/qft0 /dev/sda6
使用脚本备份一个文件系统
要使用脚本备份一个文件系统,可以使用-F选项,然后指定一个脚本文件,用于在每个卷开始和结束时执行一些操作。例如,要备份/dev/sda6到/dev/qft0,并使用一个名为backup.sh的脚本,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -0 -f /dev/qft0 -F backup.sh /dev/sda6
脚本文件的内容可以根据需要自定义,但必须遵循以下格式:
#!/bin/sh
case $1 in
start)
# 在每个卷开始时执行的操作
;;
end)
# 在每个卷结束时执行的操作
;;
esac
列出需要备份的文件系统
要列出需要备份的文件系统,可以使用-W或者-w选项,不需要指定输出文件和要备份的文件系统。-W选项会显示每个文件系统的上次备份的时间,而-w选项不会显示。例如,要列出需要备份的文件系统,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ sudo dump -W
或者
[linux@bashcommandnotfound.cn ~]$ sudo dump -w
Linux dump命令的注意事项
使用dump命令备份文件系统时,需要注意以下几点:
- dump命令只能用于ext2/ext3文件系统,不能用于其他类型的文件系统,如FAT和ReiserFS。如果要备份其他类型的文件系统,可以使用其他工具,如tar或者cpio。
- dump命令需要root权限,或者sudo权限,才能正常执行。
- dump命令需要文件系统处于非活动状态,或者只读状态,才能保证备份的一致性。如果文件系统在备份过程中发生变化,可能导致备份的数据不完整或者损坏。因此,建议在备份前,先卸载文件系统,或者使用mount命令将文件系统挂载为只读模式。
- dump命令需要有足够的空间和时间来完成备份。如果备份的文件系统很大,或者备份的设备很慢,可能需要花费很长的时间来完成备份。如果备份的设备空间不足,可能需要使用多个卷来存储备份的数据。在这种情况下,dump命令会提示用户更换设备或者文件,并继续备份。
- dump命令需要记录备份的信息,以便于进行增量备份或者恢复。默认情况下,dump命令会将备份的信息写入到/etc/dumpdates文件中,这个文件需要有可写的权限。如果不想使用这个文件,可以使用-A选项指定其他的文件。如果不想记录备份的信息,可以使用-n选项禁用这个功能。
评论区