`
tiankefeng0520
  • 浏览: 146490 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Linux学习记录--文件备份|还原

阅读更多

文件备份|还原

 

dump备份

restore还原

dd数据备份

mkisofs镜像文件制作

 

dump备份

dump主要用于备份真个文件系统备份,虽然也可以备份单一目录,但是对目录的支持不足,单一目录还是建议使用打包压缩的方式进行备份

 

dump另一个只要功能就是制定等级,也就是可以进行增量备份。

dump等级分为0~9 10个等级,0是完全备份,1是在0的基础上进行增量备份,依次类推

 

当待备份的数据为单一文件系统

可以利用了level 0~9进行备份,同时可以使用dump完整功能

当待备份的数据只是目录,并非单一文件系统

限制:

所有备份数据必须都在该目录下

仅能使用level 0 进行数据备份

不支持-u参数,即无法创建/etc/dumpdates这个level备份的时间记录文件

 

语法:dump [-Suvj] [-level] [-f备份文件]待备份数据

      dump -W

选项与参数:

-S:仅列出后面的待备份数据需要多少磁盘空间才能够备份完毕

-u:将这次备份记录到/etc/dumpdates文件中

-v:dump文件过程显示出来

-j:加入bzip2的支持,将数据进行压缩,默认压缩等级2

-level:备份等级0~9

-f:备份文件

-W:列出在/etc/fstab里面的具有dump设置的分区是否有过备份

 

举例1:备份挂载到/boot文件系统 level -0

[root@localhost ~]# dump -S /boot
16752640
[root@localhost ~]# dump -u -0 -f /root/boot.dump.0 /boot
  DUMP: Date of this level 0 dump: Fri Feb 28 15:05:56 2014
  DUMP: Dumping /dev/sda1 (/boot) to /root/boot.dump.0
  DUMP: Label: /boot
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 16360 blocks.
  DUMP: Volume 1 started with block 1 at: Fri Feb 28 15:05:56 2014
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: Closing /root/boot.dump.0
  DUMP: Volume 1 completed at: Fri Feb 28 15:05:58 2014
  DUMP: Volume 1 16440 blocks (16.05MB)
  DUMP: Volume 1 took 0:00:02
  DUMP: Volume 1 transfer rate: 8220 kB/s
  DUMP: 16440 blocks (16.05MB) on 1 volume(s)
  DUMP: finished in 2 seconds, throughput 8220 kBytes/sec
  DUMP: Date of this level 0 dump: Fri Feb 28 15:05:56 2014
  DUMP: Date this dump completed:  Fri Feb 28 15:05:58 2014
  DUMP: Average transfer rate: 8220 kB/s
  DUMP: DUMP IS DONE   
[root@localhost ~]# cat /etc/dumpdates 
/dev/sda1 0 Fri Feb 28 15:05:56 2014 +0800
=>可以看出etc/dumpdates记录着这次备份信息


 

举例2:查看文件系统备份记录

[root@localhost ~]# dump -W
Last dump(s) done (Dump '>' file systems):
> /dev/sda2     (     /) Last dump: never
> /dev/sda3     ( /home) Last dump: never
  /dev/sda1     ( /boot) Last dump: Level 0, Dat
> /dev/sda6     (/mnt/sda6) Last dump: never
=>可以看出sda1已经进行了level0备份,其他还未备份


 

举例3:增量备份 level 1

[root@localhost ~]# dd if=/dev/zero of=/boot/bigfile.img bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.320717 seconds, 65.4 MB/s
=>先创建一个20M左右的文件
[root@localhost ~]# dump -u -1 -f /root/boot.dump.1 /boot
  DUMP: Date of this level 1 dump: Fri Feb 28 15:17:51 2014
  DUMP: Date of last level 0 dump: Fri Feb 28 15:05:56 2014
  DUMP: Dumping /dev/sda1 (/boot) to /root/boot.dump.1
  DUMP: Label: /boot
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 20543 blocks.
  DUMP: Volume 1 started with block 1 at: Fri Feb 28 15:17:52 2014
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: Closing /root/boot.dump.1
  DUMP: Volume 1 completed at: Fri Feb 28 15:17:53 2014
  DUMP: Volume 1 20580 blocks (20.10MB)
  DUMP: Volume 1 took 0:00:01
  DUMP: Volume 1 transfer rate: 20580 kB/s
  DUMP: 20580 blocks (20.10MB) on 1 volume(s)
  DUMP: finished in 1 seconds, throughput 20580 kBytes/sec
  DUMP: Date of this level 1 dump: Fri Feb 28 15:17:51 2014
  DUMP: Date this dump completed:  Fri Feb 28 15:17:53 2014
  DUMP: Average transfer rate: 20580 kB/s
  DUMP: DUMP IS DONE
[root@localhost ~]# cat /etc/dumpdates 
/dev/sda1 0 Fri Feb 28 15:05:56 2014 +0800
/dev/sda1 1 Fri Feb 28 15:17:51 2014 +0800
=>这次配备写入备份记录中
[root@localhost ~]# dump -W
Last dump(s) done (Dump '>' file systems):
> /dev/sda2     (     /) Last dump: never
> /dev/sda3     ( /home) Last dump: never
  /dev/sda1     ( /boot) Last dump: Level 1, Date Fri Feb 28 15:17:51 2014
> /dev/sda6     (/mnt/sda6) Last dump: never
[root@localhost ~]# ll /root/boot* 
-rw-r--r-- 1 root root 16834560 02-28 15:05 /root/boot.dump.0
-rw-r--r-- 1 root root 21073920 02-28 15:17 /root/ boot.dump.1
=> boot.dump.1大小约为20M,可见是增量备份


 

举例4:单一目录进行备份

[root@localhost ~]# dump -0 -f /root/etc.dump /etc
  DUMP: Date of this level 0 dump: Fri Feb 28 15:23:39 2014
  DUMP: Dumping /dev/sda2 (/ (dir etc)) to /root/etc.dump
DUMP: Label: /
  DUMP: Writing 10 Kilobyte records
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 177675 blocks.
  DUMP: Volume 1 started with block 1 at: Fri Feb 28 15:23:41 2014
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: Closing /root/etc.dump
  DUMP: Volume 1 completed at: Fri Feb 28 15:24:23 2014
  DUMP: Volume 1 188600 blocks (184.18MB)
  DUMP: Volume 1 took 0:00:42
  DUMP: Volume 1 transfer rate: 4490 kB/s
  DUMP: 188600 blocks (184.18MB) on 1 volume(s)
  DUMP: finished in 42 seconds, throughput 4490 kBytes/sec
  DUMP: Date of this level 0 dump: Fri Feb 28 15:23:39 2014
  DUMP: Date this dump completed:  Fri Feb 28 15:24:23 2014
  DUMP: Average transfer rate: 4490 kB/s
  DUMP: DUMP IS DONE
[root@localhost ~]# ll /root/etc.dump 
-rw-r--r-- 1 root root 193126400 02-28 15:24 /root/etc.dump


 

restore还原

dump备份的文件由restore进行还原

语法:

查看dump文件:restore –t [-f dumpfile] [-h]

比较dump与实际文件:restore –C [-f dumpfile] –D挂载点

进入互动模式(还原单个文件)restore –i [-f dumpfile]

还原整个文件系统:restore –r [-f dumpfile]

 

选项与参数:

相关的各种模式,各种模式无法混用.例如不可以写 -tC

-t:此模式用在察看 dump起来的备份档中含有什么重要数据!类似 tar -t功能;

-C:此模式可以将 dump内的数据拿出来跟实际的文件系统做比较,最终会列出[ dump文件内有记录的,且目前文件系统不一样]的文件;

-i:进入互动模式,可以仅还原部分文件,用在 dump目录时的还原

-r:将整个 filesystem还原的一种模式,用在还原针对文件系统的 dump备份;

 

其他较常用到的选项功能:

-h:察看完整备份数据中的 inode与文件系统 label等信息

-f:后面就接你要处理的那个 dump文件

-D: -C进行搭配,可以查出后面接的挂载点与 dump内有不同的文件

 

举例1:查看dump备份文件

[root@localhost ~]# restore -t -f /root/boot.dump.0
Dump   date: Fri Feb 28 15:05:56 2014
Dumped from: the epoch
Level 0 dump of /boot on localhost.localdomain:/dev/sda1
Label: /boot
         2      .
        11      ./lost+found
     10041      ./grub
     10059      ./grub/grub.conf
…….
        14      ./System.map-2.6.18-371.el5
        15      ./config-2.6.18-371.el5
        16      ./symvers-2.6.18-371.el5.gz
        17      ./vmlinuz-2.6.18-371.el5


 

举例2:比较文件差异

[root@localhost ~]# mv /boot/message /boot/message-back
[root@localhost ~]# restore -C -f /root/boot.dump.0 -D /boot
Dump   date: Fri Feb 28 15:05:56 2014
Dumped from: the epoch
Level 0 dump of /boot on localhost.localdomain:/dev/sda1
Label: /boot
filesys = /boot
restore: unable to stat ./message: No such file or directory
Some files were modified!  1 compare errors


 

举例3:还原整个文件系统

[root@localhost ~]# dd if=/dev/zero of=/home/newfile bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 3.83857 seconds, 54.6 MB/s
[root@localhost ~]# mkfs -t ext3 /home/newfile 
mke2fs 1.39 (29-May-2006)
/home/newfile is not a block special device.
……
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]# mount -o loop /home/newfile /mnt
[root@localhost ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2             9.5G  4.4G  4.7G  49% /
/dev/sda3             4.8G  339M  4.2G   8% /home
/dev/sda1              99M   42M   53M  45% /boot
tmpfs                1014M     0 1014M   0% /dev/shm
/home/newfile         194M  5.6M  179M   4% /mnt
=>创建一个文件挂载到mnt下
[root@localhost ~]# cd /mnt
[root@localhost mnt]# restore -r -f /root/boot.dump.0
restore: ./lost+found: File exists
[root@localhost mnt]# ll
总计 16149
-rw-r--r-- 1 root root    70400 10-01 21:10 config-2.6.18-371.el5
drwxr-xr-x 2 root root     1024 02-18 09:51 grub
-rw------- 1 root root  2748313 02-18 09:46 initrd-2.6.18-371.el5.img
drwx------ 2 root root    12288 02-14 18:00 lost+found
-rw-r--r-- 1 root root    80032 2009-03-13 message
-rw------- 1 root root    27676 02-28 15:54 restoresymtable
-rw-r--r-- 1 root root   117436 10-01 21:10 symvers-2.6.18-371.el5.gz
-rw-r--r-- 1 root root   996296 10-01 21:10 System.map-2.6.18-371.el5
-rw-r--r-- 1 root root 10485760 02-28 13:25 testing.img
-rw-r--r-- 1 root root  1912148 10-01 21:10 vmlinuz-2.6.18-371.el5
=>还原level 0备份
[root@localhost mnt]# restore -r -f /root/boot.dump.1
[root@localhost mnt]# ll
总计 36711
-rw-r--r-- 1 root root 20971520 02-28 15:17 bigfile.img
-rw-r--r-- 1 root root    70400 10-01 21:10 config-2.6.18-371.el5
drwxr-xr-x 2 root root     1024 02-18 09:51 grub
-rw------- 1 root root  2748313 02-18 09:46 initrd-2.6.18-371.el5.img
drwx------ 2 root root    12288 02-14 18:00 lost+found
-rw-r--r-- 1 root root    80032 2009-03-13 message
-

------- 1 root root    27724 02-28 15:55 restoresymtable
-rw-r--r-- 1 root root   117436 10-01 21:10 symvers-2.6.18-371.el5.gz
-rw-r--r-- 1 root root   996296 10-01 21:10 System.map-2.6.18-371.el5
-rw-r--r-- 1 root root 10485760 02-28 13:25 testing.img
-rw-r--r-- 1 root root  1912148 10-01 21:10 vmlinuz-2.6.18-371.el5
=>还原level 1备份可以看到多了bigfile.img这个增量文件


 

dd

dd功能不仅限于创建文件,更多功能在于“备份”,cp,dump只是简单的文件数据拷贝,而dd可以读取设备的所有内容,比如superblock ,boot sector,mete data

 

语法:dd if=”input file” of=”output file” bs=”block” count=”number”

选项与参数:

if:输入文件,也可以是设备

of:输出文件,也可以是设备

bs:每个block的大小,默认是512K

count:block数量

 

举例1.文件备份

[root@localhost ~]# dd if=~/.bashrc of=/tmp/bashrc 
0+1 records in
0+1 records out
176 bytes (176 B) copied, 7.3142e-05 seconds, 2.4 MB/s
[root@localhost ~]# ll /tmp/bashrc 
-rw-r--r-- 1 root root 176 02-28 16:17 /tmp/bashrc


 

举例2:文件系统备份

[root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.dd bs=1M 
101+1 records in
101+1 records out
106896384 bytes (107 MB) copied, 9.60492 seconds, 11.1 MB/s
[root@localhost ~]# ll /tmp/boot.dd
-rw-r--r-- 1 root root 106896384 02-28 16:19 /tmp/boot.dd


 

举例3:文件系统还原

[root@localhost ~]# dd if=/tmp/boot.dd of=/dev/sda1 bs=1M

 

举例4.文件系统完全复制

Dump备份时,我们需要先用Dump将文件系统备份,然后创建新的文件系统,格式化,再将备份文件还原到新的文件系统。

使用dd可以不用格式化,就可以完全复制一个文件系统,因为dduperblock ,boot sector,mete data等信息都进行复制,格式化要做的不也正是这些事吗

[root@bogon ~]# fdisk /dev/sda
…….
Command (m for help): n
……
Command (m for help): P
……
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
……
/dev/sda7            2116        2134      152586   83  Linux

Command (m for help): w
……
[root@bogon ~]# partprobe
=>创建完分区
[root@bogon ~]# dd if=/dev/sda1 of=/dev/sda7 
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 23.5363 seconds, 4.5 MB/s
[root@bogon ~]# mount /dev/sda7 /mnt
[root@bogon ~]# ll /mnt
总计 5838
-rw-r--r-- 1 root root   70400 10-01 21:10 config-2.6.18-371.el5
drwxr-xr-x 2 root root    1024 02-18 20:26 grub
-rw------- 1 root root 2748762 02-27 19:45 initrd-2.6.18-371.el5.img
drwx------ 2 root root   12288 02-19 03:59 lost+found
-rw-r--r-- 1 root root   80032 2009-03-13 message
-rw-r--r-- 1 root root  117436 10-01 21:10 symvers-2.6.18-371.el5.gz
-rw-r--r-- 1 root root  996296 10-01 21:10 System.map-2.6.18-371.el5
-rw-r--r-- 1 root root 1912148 10-01 21:10 vmlinuz-2.6.18-371.el5
=> /mnt和/boot下的内容一样 并且没有进行格式化


 

mkisofs(镜像文件备份)

 

语法:mkisofs [-o镜像文件] [-rv] [-m file]待备份的文件 [-V vol] –graft-point isodir=sysdir

选项与参数:

-o:镜像文件

-r:产生UNIX/Linux支持的文件数据

-v:显示构建ISO的过程

-m:排除的文件

-V:卷标名称

-graft-point:目录对照名称,如果不进行指定所以的信息都会保持在根目录

 

举例:

[root@bogon ~]# mkisofs -o /tmp/system.img -r -m /home/lost+found -V 'tkf_file' -graft-point /root=/root /home=/home /etc=/etc
[root@bogon ~]# mount -o loop /tmp/system.img /mnt
[root@bogon ~]# ll /mnt
dr-xr-xr-x 114 root root 34816 03-01 14:31 etc
dr-xr-xr-x   3 root root  2048 03-01 14:31 home
dr-xr-xr-x  18 root root  4096 03-01 14:31 root


 

0
0
分享到:
评论

相关推荐

    达梦数据库-备份与还原-国产数据库-DM8备份与还原.pdf

    DM数据库备份主要包括两大部分:数据文件备份和归档日志备份。其中,数据文件包含了数据库的所有数据信息,而归档日志记录了所有已提交的事务变化。这两种备份结合在一起才能确保数据的一致性和完整性。 ##### 1.2 ...

    利用dump-restore实现备份还原

    ### 利用dump-restore实现备份还原 #### dump命令的原理、优点及限制 - **原理**:`dump` 命令主要用于 Linux 系统的文件系统备份。它的核心功能在于能够创建自上次备份以来发生更改的文件列表,并将这些文件打包...

    linux维护--dump详解

    `dump` 是一个在Linux系统中用于备份文件系统的工具,它能够将指定的目录或整个文件系统备份到指定的设备,如磁带或硬盘,也可以备份到一个大文件中。该命令提供了丰富的参数,使得用户可以根据实际需求定制备份策略...

    python实现psql数据库备份还原(两种方法)

    - 备份和还原时,请确保有足够的磁盘空间,并注意备份文件的安全性,避免数据泄露。 - 数据库的用户名、主机名、端口和数据库名应根据实际情况进行替换。 通过这两种方法,你可以实现Python环境下对PostgreSQL...

    Linux系统下远方电能量数据终端配置文件备份及还原.pdf

    总结来说,Linux系统下的ERTU配置文件备份和还原是电力系统自动化管理的重要组成部分。通过合理利用脚本程序、MD5码校验以及外部存储设备,可以实现配置文件的安全备份和快速恢复,从而优化电力系统的运营效率和管理...

    linux下shell脚本实现的svn备份与还原工具-v2

    linux下shell脚本,该脚本完成了一下功能: 1,备份svn中修改与删除的文件,以当前时间命名文件夹并保存 2,根据备份的文件夹进行还原...3,可以根据文件夹名称获取备份时间,可以根据记录文件获取备份信息,功能很强大

    linux-backup-dir:linux自动备份目录

    7. **验证**:备份完成后,最好进行验证,确保备份文件可以正确还原,以检测备份过程中是否出现了错误。 在"linux-backup-dir-master"这个文件名中,"master"可能指的是主备份脚本或者整个备份系统的主控部分,负责...

    基于SQLServer的数据库备份与还原

    ### 基于SQL Server的数据库备份与还原 #### 一、引言 在现代信息技术领域,数据库系统作为数据管理的核心部分,在企业运营和个人信息管理中扮演着至关重要的角色。然而,无论是硬件故障还是软件错误,都可能对...

    (UNIX、Linux)MySql数据库全量备份和增量备份处理脚本,以及从ftp自动拷贝备份文件(完整操作,附带shell脚本)

    #### 五、备份还原 **全量还原**: 1. 不进入MySQL直接还原: ``` mysql -u 用户名 -p 密码 -f 数据库名 ``` 2. 进入MySQL后还原: ``` source /path/to/full_backup.sql ``` **增量还原**: 1. 使用`...

    db2在线增量备份还原总结

    - 日志文件需要有足够的空间来保存所有的数据变化记录,否则可能导致备份失败。 2. **恢复顺序:** - 在恢复过程中,必须先恢复全量备份,再恢复增量备份。 - 自动增量恢复功能可以帮助简化这一过程,但仍然需要...

    达梦数据库备份恢复使用

    数据库还原是指将备份文件恢复到数据库中。使用 RMAN 工具可以将备份文件恢复到数据库中。 使用以下命令打开 RMAN 工具: [dmdba@DM02bin]$ ./dmrman 然后,使用以下命令还原数据库: RMAN>RESTORE DATABASE '/...

    Oracle数据库备份与恢复总结

    - **备份指定周期内没有备份的数据文件**: - `BACKUP AS COPY DATABASE KEEP 7 DAYS;` - **在备份操作期间检查逻辑讹误**: - `BACKUP VALIDATE DATABASE;` - **RESTORE/RECOVER恢复命令选项**: - **数据库恢复...

    03-MySQL备份与恢复1

    物理备份通常速度快,但还原时可能需要特定的硬件环境和软件配置。 2. **逻辑备份**:通过工具(如`mysqldump`)将数据库结构和数据转换为文本格式(SQL语句)。逻辑备份便于跨平台恢复,但速度较慢,且在大数据量时...

    系统硬盘备份还原工具 1.0

    8. **兼容性和易用性**:系统硬盘备份还原工具应兼容各种操作系统,如Windows、Mac OS和Linux,并具有用户友好的界面,使非技术用户也能轻松操作。 9. **验证备份**:备份过程完成后,验证备份的完整性是必要的。这...

    linux下的dd和cpio命令.pdf

    `dd`和`cpio`都是Linux系统中不可或缺的工具,`dd`适用于原始数据的精确复制和转换,而`cpio`则提供了更灵活的文件和目录备份解决方案。了解并熟练掌握这两个命令,对于日常的系统维护和数据管理至关重要。

    数据库的备份与恢复方法.pdf

    一是通过`source`命令在MySQL客户端内执行备份脚本,二是使用Linux系统命令直接导入备份文件。在进行数据恢复时,可能需要先创建数据库,然后恢复表。 4. **数据增量恢复** - **断点恢复**:如果在数据库中发生...

    系统工具-文件下载-极佳mysql数据库备份工具 1.0.zip

    8. **恢复功能**:除了备份,工具应包含恢复功能,允许用户在需要时快速还原数据库到备份时的状态。 9. **日志记录**:备份活动的记录和日志分析可以帮助用户追踪历史操作,诊断问题,以及满足审计要求。 10. **跨...

    Linux-Mint-Mirrors-Upstream-Updater:一个程序,它将官方的上游镜像源更新为最接近的源,并备份旧的源

    bash文件对每个镜像执行ping操作,并将现有的镜像替换为最近的镜像(ping时间最短的镜像),还将旧的镜像保存为备份-如果新的源由于某种原因出现问题,它将还原为就像开始时一样。 bash文件还将记录所有过程。

Global site tag (gtag.js) - Google Analytics