标签:输出 根目录 type bzip2 format 消失 sudo 支持 output
GNU `tar‘ saves many files together into a single tape or disk archive, and can restore individual files from the archive.
tar命令可以将多个文件或目录打包成一个大文件,并能将文件和目录从打包的文件中还原。
常用参数
常用命令
压缩:tar -cvz/j/J -f filename.tar.gz/bz2/xz
查询:tar -tvz/j/J -f filename.tar.gz/bz2/xz
解压缩:tar -xvz/j/J -f filename.tar.gz/bz2/xz
实践
压缩 [root@bogon ~]# tar -cvzf /tmp/test.tar.gz /etc 查看 [root@bogon ~]# tar -tvzf /tmp/test.tar.gz /etc drwxr-xr-x root/root 0 2020-03-24 20:02 etc/ntp/ -rw------- root/root 86 2017-10-10 00:30 etc/ntp/keys -rw-r--r-- root/root 72 2017-10-10 00:30 etc/ntp/step-tickers drwxr-xr-x root/root 0 2020-03-24 20:02 etc/kernel/ drwxr-xr-x root/root 0 2020-03-24 20:02 etc/kernel/postinst.d/ -rwxr-xr-x root/root 1676 2018-09-27 21:47 etc/kernel/postinst.d/51-dracut-rescue-postinst.sh -r--r----- root/root 4328 2018-09-25 13:57 etc/sudoers
[root@bogon ~]# tar -xvzf /tmp/test.tar.gz 打包文件会在本目录下进行解压缩
[root@bogon ~]# ll | grep etc
drwxr-xr-x. 146 root root 8192 May 6 19:22 etc
查看的时候发现每个文件都没有了根目录,为了安全起见,在tar所记录的文件名就是解压缩后的实际文件名。如果拿掉了根目录,假设将备份数据在 /tmp 解开,那么解压缩的文件就会变成/tmp/etc/xxx。 但如果没有拿掉根目录,解压缩后的文件名就会是绝对路径, 亦即解压缩后的数据一定会被放置 到 /etc/xxx 去,如此一来,原本的 /etc/ 底下的数据, 就会被备份数据所覆盖。
如果确定备份根目录到tar文件中,可以使用-P参数。
xfsdump可以对完整的文件系统进行备份,除了进行完整备份,还可以进行累积备份。第一次备份一定是完整备份,完整备份在xfsdump中被定义为level 0,各个level记录文件放置于/var/lib/xfsdump/inventory中。
xfsdump的限制
常用参数
xfsdump预设仅支持文件系统的备份,并不支持特定目录的备份。
实践:使用xfsdump备份完整的文件系统
[root@bogon ~]# xfsdump -l 0 -L boot_all -M boot_all -f /tmp/boot.dump /boot
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 0 dump of bogon:/boot # 开始备份本机的/boot系统
xfsdump: dump date: Wed May 6 20:30:44 2020 # 备份时间
xfsdump: session id: f5faccf7-538c-4f2a-8ca6-d987fb7d833a # dump ID
xfsdump: session label: "boot_all" # session 标签
xfsdump: ino map phase 1: constructing initial dump list # 开始备份程序
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 151900864 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 151575176 bytes
xfsdump: dump size (non-dir files) : 151335512 bytes
xfsdump: dump complete: 15 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /tmp/boot.dump OK (success)
xfsdump: Dump Status: SUCCESS
[root@bogon ~]# ll /tmp/boot.dump
-rw-r--r--. 1 root root 151575176 May 6 20:30 /tmp/boot.dump
[root@bogon ~]# ll /var/lib/xfsdump/inventory/
total 16
-rw-r--r--. 1 root root 5760 May 6 20:31 e1e215d9-1606-472c-b78c-6a3c4ce8e8b1.StObj
-rw-r--r--. 1 root root 312 May 6 20:31 f37a802e-3cde-49ea-8384-ed251e97f106.InvIndex
-rw-r--r--. 1 root root 576 May 6 20:30 fstab
xfsdump将/boot整个文件系统备份下来并将备份的相关信息(文件系统/时间/session ID等)写入/var/lib/xfsdump/inventory中,给下次备份作为参考依据。
实践:使用xfsdump进行累计备份
[root@bogon ~]# xfsdump -I # 查看xfsdump的文件系统
file system 0:
fs id: f37a802e-3cde-49ea-8384-ed251e97f106
session 0:
mount point: bogon:/boot
device: bogon:/dev/sda1
time: Wed May 6 20:30:44 2020
session label: "boot_all"
session id: f5faccf7-538c-4f2a-8ca6-d987fb7d833a
level: 0
resumed: NO
subtree: NO
streams: 1
stream 0:
pathname: /tmp/boot.dump
start: ino 69 offset 0
end: ino 1572967 offset 0
interrupted: NO
media files: 1
media file 0:
mfile index: 0
mfile type: data
mfile size: 151575176
mfile start: ino 69 offset 0
mfile end: ino 1572967 offset 0
media label: "boot_all"
media id: 0ee84558-e516-489d-883b-aa02d42122cb
xfsdump: Dump Status: SUCCESS
[root@bogon ~]# dd if=/dev/zero of=/boot/test.txt bs=1M count=10 # 创建测试数据
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.20551 s, 51.0 MB/s
[root@bogon ~]# xfsdump -l 1 -L boot_2 -M boot_2 -f /tmp/boot.dump1 /boot # 建立差异备份
[root@bogon ~]# ll /tmp/boot* # 查看文件大小,dump1的文件大小就是刚刚创建的测试数据大小
-rw-r--r--. 1 root root 151575176 May 6 20:30 /tmp/boot.dump
-rw-r--r--. 1 root root 10510952 May 6 20:31 /tmp/boot.dump1
[root@bogon ~]# xfsdump -I
file system 0:
fs id: f37a802e-3cde-49ea-8384-ed251e97f106
session 0:
mount point: bogon:/boot
device: bogon:/dev/sda1
time: Wed May 6 20:30:44 2020
session label: "boot_all"
session id: f5faccf7-538c-4f2a-8ca6-d987fb7d833a
level: 0
resumed: NO
subtree: NO
streams: 1
stream 0:
pathname: /tmp/boot.dump
start: ino 69 offset 0
end: ino 1572967 offset 0
interrupted: NO
media files: 1
media file 0:
mfile index: 0
mfile type: data
mfile size: 151575176
mfile start: ino 69 offset 0
mfile end: ino 1572967 offset 0
media label: "boot_all"
media id: 0ee84558-e516-489d-883b-aa02d42122cb
session 1:
mount point: bogon:/boot
device: bogon:/dev/sda1
time: Wed May 6 20:31:30 2020
session label: "boot_2"
session id: d2d50506-1d65-429c-9267-909585f26594
level: 1
resumed: NO
subtree: NO
streams: 1
stream 0:
pathname: /tmp/boot.dump1
start: ino 82 offset 0
end: ino 83 offset 0
interrupted: NO
media files: 1
media file 0:
mfile index: 0
mfile type: data
mfile size: 10510952
mfile start: ino 82 offset 0
mfile end: ino 83 offset 0
media label: "boot_2"
media id: b740ecdf-e3e2-49ca-a99d-fb6b765f64ab
xfsdump: Dump Status: SUCCESS
xfsrestore restores filesystems from dumps produced by xfsdump. 使用xfsrestore复原备份文件。
常用参数
-I Causes the xfsdump inventory to be displayed (no restore is performed). 显示xfsdump清单,可查询备份数据,包括label与备份时间。
-f source [ -f source ... ] Specifies a source of the dump to be restored.后接备份文件。
-L session_label,Specifies the label of the dump session to be restored.
-s subtree,Specifies a subtree to restore. 后接特定的目录,只复原某一个文件或目录。
实践
[root@bogon ~]# xfsrestore -I # 使用xfsrestore -I来查阅xfsdump的内容,与xfsdump -I输出相同 file system 0: fs id: f37a802e-3cde-49ea-8384-ed251e97f106 session 0: mount point: bogon:/boot device: bogon:/dev/sda1 time: Wed May 6 20:30:44 2020 session label: "boot_all" session id: f5faccf7-538c-4f2a-8ca6-d987fb7d833a level: 0 resumed: NO subtree: NO streams: 1 stream 0: pathname: /tmp/boot.dump start: ino 69 offset 0 end: ino 1572967 offset 0 interrupted: NO media files: 1 media file 0: mfile index: 0 mfile type: data mfile size: 151575176 mfile start: ino 69 offset 0 mfile end: ino 1572967 offset 0 media label: "boot_all" media id: 0ee84558-e516-489d-883b-aa02d42122cb session 1: mount point: bogon:/boot device: bogon:/dev/sda1 time: Wed May 6 20:31:30 2020 session label: "boot_2" session id: d2d50506-1d65-429c-9267-909585f26594 level: 1 resumed: NO subtree: NO streams: 1 stream 0: pathname: /tmp/boot.dump1 start: ino 82 offset 0 end: ino 83 offset 0 interrupted: NO media files: 1 media file 0: mfile index: 0 mfile type: data mfile size: 10510952 mfile start: ino 82 offset 0 mfile end: ino 83 offset 0 media label: "boot_2" media id: b740ecdf-e3e2-49ca-a99d-fb6b765f64ab xfsrestore: Restore Status: SUCCESS
简单复原level 0 的文件系统
[root@bogon ~]# xfsrestore -f /tmp/boot.dump -L boot_all /boot # 将数据覆盖到/boot
[root@bogon ~]# xfsrestore -f /tmp/boot.dump -L boot_all /tmp/boot # 另外复原一份数据在/tmp/boot
[root@bogon ~]# du -sm /boot /tmp/boot
155 /boot
145 /tmp/boot
为何两者大小不一样?
[root@bogon ~]# diff -r /boot /tmp/boot
Only in /boot: test.txt
直接复原的结果是:同名的文件被覆盖,新的文件被保留,所以在/boot中创建的测试数据不会因为复原而消失
dd if="input_file" of="output_file" bs="block_size" count="number"
实践:备份passwd文件
[root@bogon ~]# dd if=/etc/passwd of=/tmp/passwd.bak 4+1 records in 4+1 records out 2354 bytes (2.4 kB) copied, 0.000565697 s, 4.2 MB/s [root@bogon ~]# ll /etc/passwd /tmp/passwd.bak -rw-r--r--. 1 root root 2354 May 4 14:36 /etc/passwd -rw-r--r--. 1 root root 2354 May 6 20:59 /tmp/passwd.bak
实践:备份/boot文件系统
[root@bogon ~]# dd if=/dev/sda1 of=/tmp/boot.img 2097152+0 records in 2097152+0 records out 1073741824 bytes (1.1 GB) copied, 22.4468 s, 47.8 MB/s [root@bogon ~]# ll /tmp/boot.img -rw-r--r--. 1 root root 1073741824 May 6 21:02 /tmp/boot.img
默认dd一个一个扇区读写,所以没用到的扇区也会被写入备份文件,所以文件会与磁盘相同大小,但是xfsdump只备份文件系统中使用到的部分。
cpio可以备份任何东西,包括装置设备文件。不过cpio不会主动寻找文件备份,因此一般配合find类等可以找到文件名的指令来告知cpio应该备份的户既在哪里。
常用指令
常用参数
备份会使用到的选项与参数:
还原会使用到的选项与参数:
实践
压缩 [root@bogon /]# find boot | cpio -ocvB > /tmp/boot.cpio 查看 [root@bogon /]# ll /tmp/boot.cpio -rw-r--r--. 1 root root 161633280 May 6 21:11 /tmp/boot.cpio [root@bogon /]# file /tmp/boot.cpio /tmp/boot.cpio: ASCII cpio archive (SVR4 with no CRC) 解压缩 [root@bogon ~]# cpio -idvc < /tmp/boot.cpio
标签:输出 根目录 type bzip2 format 消失 sudo 支持 output
原文地址:https://www.cnblogs.com/wanao/p/12838917.html