概述
备份基础概念
备份介质:
软盘:如果要把重要文件快速备份,或者将其带到家中,这时软盘仍旧是一种可选的备份介质。
光盘写入器:随着光盘写入器变得越来越可靠,价格也越来越低,光盘本身也非常便宜。选用此项的一个好处是光盘不容易被损坏,它备份的可靠性很高。使用光盘写入器有两点不利因素:它们速度较慢,并且只能保存大约650MB。
可重写的光盘:可重写光盘驱动器比光盘写入器要贵得多,工作方式与其类似。但是,这些光盘是可被重写的,并且它比只能写一次的光盘贵许多。可重写光盘其它的特性都与光盘写入器类似。
Jaz和Zip:Zip驱动器很流行,已经成为许多PC机的标准配置,同时它的磁盘和驱动器也都不贵。它一张磁盘可容纳100MB的数据,是一种用于快速、可移动备份的很好选择。Jaz磁盘可以容纳上G字节的数据,并且使用更先进的技术以获得更好的表现。Jaz驱动器和Jaz磁盘都比较贵。Jaz和Zip的缺陷是都容易损坏,并且保持时间相对要短。
磁带机:磁带备份设备是大多数Linux服务器的标准配置。磁带是可靠的,并且很少出现错误,它几乎比其它介质存储时间都要长。对于点对点工作组网络和中型网络,Travan和高端数字音频磁带(DAT)通常是最好的选择。Travan驱动器经过压缩可以处理8GB数据,这对于具有5-10个PC机的小型网络来说足够了。DAT驱动器有更好的表现,可以处理24GB的数据。DAT驱动器比Travan驱动器昂贵,但它磁带的价格要比Travan QIC磁带卷便宜。
高端磁带:选择高端磁带可能是相当贵的。与Travan或DAT相比,这种驱动器有更大的容量和更高的速度。三种广泛使用的驱动器类型是:Sony Advanced Intelliget Tape ( AIT ) 、Quantum Digital Linear Ta p e( DLT )和Exabyte Mammoth 8mm。它们最少可以容纳20GB的不压缩数据,并且具有更高的数据传输能力。
备份策略:
完全(Full)备份
每隔一段时间对系统进行一次完全的备份,这样在备份时间间隔内,一旦系统发生故障使得数据丢失时,就可以用上一次的备份数据恢复到上一次备份时的情况。
增量(Incremental)备份
首先进行一次完全备份,然后每隔一个较短时间进行一次备份,但仅备份在这个期间更改的内容。这样一旦发生数据丢失,首先恢复到前一个完全备份,然后按日期逐个恢复每天的备份,就能恢复到前一天的情况。这种备份方法比较经济。
差分(Differential)备份 (差异备份)
差分备份也称累计备份。这种备份方法与增量备份相似,首先每月进行一次完全备份,然后备份从上次进行完全备份后更改的全部数据文件。一旦发生数据丢失,使用一个完全备份和一个差分备份就可以恢复故障以前的状态。差分备份只需两次恢复,因此它的恢复工作相对简单。
系统必须备份的目录
/etc /var /srv /usr/local /root /opt /home
管理员应该针对所选定的要备份的数据实施备份策略、安排备份计划,例如:每月进行一次完全备份,每周进行一次差分备份,每天做一次增量备份。
当备份您的系统时,不要包括如下的文件系统或目录:
/proc /mnt /media /dev
备份工具
GNU 的传统备份工具
GNU tar — http://www.gnu.org/software/tar/
GNU cpio — http://www.gnu.org/software/cpio/
GNU cp and dd (coreutils package) http://www.gnu.org/software/coreutils/
传统工具的改进、移植、整合
pax — ftp://ftp.suse.com/pub/people/kukuk/pax/
afio — http://freshmeat.net/projects/afio/
pdumpfs — http://0xcc.net/pdumpfs/index.html.en
glastree — http://igmus.org/code/
flexbackup — http://www.flexbackup.org/
特定文件系统的备份工具
dump/restore — http://dump.sourceforge.net/
xfsdump/xfsrestore — http://oss.sgi.com/projects/xfs/
基本的数据同步、镜像与快照工具
rsync –– http://rsync.samba.org/
unison — http://www.cis.upenn.edu/~bcpierce/unison/
mirrordir –– http://linux.maruhn.com/sec/mirrordir.html
rdiff-backup — http://www.nongnu.org/rdiff-backup/
rsnapshot — http://www.rsnapshot.org/
rsback — http://www.pollux.franken.de/hjb/rsback/
SafeKeep — http://safekeep.sourceforge.net/
rlbackup — http://www.math.ualberta.ca/imaging/rlbackup/
Dirvish — http://www.dirvish.org/
具有分区镜像功能的工具
mkCDrec — http://mkcdrec.ota.be/
mondo — http://www.mondorescue.org/
clonezilla — http://clonezilla.sourceforge.net/
Partition Image for Linux — http://partp_w_picpath.sourceforge.net/
SystemImager — http://wiki.systemp_w_picpathr.org/index.php/Main_Page
跨平台备份工具
Amanda — http://www.amanda.org/
BackupPC — http://backuppc.sourceforge.net/
bacula — http://www.bacula.org/
Synbak — http://www.initzero.it/products/opensource/synbak/
商业备份产品
BRU — http://www.bru.com/
Arkeia Network Backup — http://www.arkeia.com/
tar 和 rsync 两个基本工具,有许多备份工具都是基于他们的。
建立备份日志
机器名称、IP地址、存放位置
备份时间
备份介质及其编号
备份的文件系统
备份的目录或文件
Tar备份
tar <operation> [options] <files_to_backup_or_restore>
其中:
operation:用于指定 tar 要进行的操作
options:用于指定一系列的选项
files_to_backup_or_restore:用于给出要备份或要恢复的文件或目录名,在指定目录时也包括了这个目录下的子目录。
通常将备份文件存储在单独的分区中,可以是系统本地硬盘中的一个分区,也可以是另外挂装的移动设备中的一个分区。因此,在备份之前,应该创建挂装点目录,并挂装文件系统。
# mkdir /backups
# mount -t ext3 /dev/sdc1 /backups
# mkdir /backups/logs /backups/last-full
指定要备份的文件或目录
1、使用如下的命令备份指定的一个或多个目录到 /backups 目录中的一个归档文件
# tar -zcvpf /backups/full-backup.tar.gz /home
# tar -zcvpf /backups/full-backup.tar.gz /home /etc
2、使用命令替换生成要备份的目录
下面的命令备份整个 / 系统,除了 mnt、media、dev、proc、backups 目录和 lost+found 目录。
# tar -zcvpf /backups/full-backup.tar.gz -C /
> $(ls /| egrep -v "backups|mnt|media|dev|lost+found|proc")
4、将要备份的文件或目录名放入文本文件
# cat whatsbackup.txt
/home
/etc
/usr/local
/root
# tar -zcvpf /backups/full-backup.tar.gz -T whatsbackup.txt
1. -T 参数后指定的文件中,不能使用文件通配符
2. 可以使用 ls 或 find 命令生成 whatsbackup.txt 文件
为归档文件名添加时间
在归档文件名中使用带有命令替换的 date 命令 。
只添加日期
# tar -zcvpf /backups/full-backup_$(date +%F).tar.gz /home
# ls -l /backups
-rw-r--r-- 1 root root 125855 01-29 19:09 full-backup_2008-01-29.tar.gz
2、添加日期、小时和分钟
# tar -zcvpf /backups/full-backup_$(date +%Y%m%d-%H%M).tar.gz /home
# ls -l /backups
-rw-r--r-- 1 root root 125855 01-29 20:17 full-backup_20080129-2017.tar.gz
保留备份日志
使用输出重定向将 tar 命令的输出结果存入文件。
# tar -zcvpf /backups/full-backup_$(date +%F).tar.gz /home
> > /backups/logs/full-backup_$(date +%F).log
> 2> /backups/logs/full-backup_$(date +%F).err
# tar -zcvpf /backups/full-backup_$(date +%Y%m%d-%H%M).tar.gz /home
> > /backups/logs/full-backup_$(date +%Y%m%d-%H%M).log
> 2> /backups/logs/full-backup_$(date +%Y%m%d-%H%M).err
增量备份
1、使用带 N 选项的 tar 命令实现增量备份
下面的命令将备份 /home 目录自 2008-01-29 以来修改过的文件
# tar -N 2008-01-29 -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home
下面的命令将备份 /home 目录昨天以来修改过的文件
# tar -N $(date -d yesterday "+%F")
> -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home
以下两种书写方式均可,但含义有所不同:
? -N yesterday : 比昨天的当前时间新的文件,例如:若当先时间为 2:31,则表示自昨天 2:31 以来的新文件
? -N $(date -d yesterday ”+%F”) : 自昨天 0:00 以来的新文件
下面的命令使用命令替换从文本文件中获得日期
# tar -N $(cat /backups/last-full/full-backup-date)
> -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home
/backups/last-full/full-backup-date 是在创建完全备份的同时使用如下命令创建的文件:
date +%F > /backups/last-full/full-backup-date
2、使用 find 命令获取增量备份的文件列表
使用如下命令找出 n 天(如:7天)内修改过的文件,生成备份内容的文件列表
# find /home /etc /root -mtime -7 -print > /backups/logs/inc-backup_$(date +%F).log
对指定文件列表中的文件实现增量备份
# tar -zcvpf /backups/inc-backup_$(date +%F).tar.gz
> -T /backups/logs/inc-backup_$(date +%F).log
使用磁带备份
与向硬盘文件备份有所不同:
? -f 参数后要跟磁带机的设备名,如:/dev/sd0、/dev/nsd0。
? 由于设备名是固定的,不能像硬盘文件那样在文件名中添加备份时间。此时可以使用 ––label 选项将
有关的备份信息写入归档本身。
? 反对将压缩资料写入磁带,因为如果磁带上资料有一部份损坏,会失去整个备份。
下面是两个使用磁带备份的例子:
# tar -cvpf /dev/st0 --label="Full-backup created on $(date +%Y%m%d-%H%M)."
> -C / --exclude=var/spool/ etc home usr/local var/spool
# tar -cvpf /dev/st0 --label="Incremental-backup created on $(date +%F)."
> -N $(date -d yesterday "+%F") /etc /home
除了使用 /dev/st0 之外,还可以使用 /dev/nst0,他们的区别在于:
? /dev/st0 –– 磁带在备份完毕会自动回带
? /dev/nst0 –– 磁带在备份完毕不会自动回带,有可能将好几组备份写到同一磁带
对于不能自动回带的设备,可以使用如下的命令进行手工回带并退出磁带:
# mt -f /dev/nst0 rewind
# mt -f /dev/nst0 offline
使用 tar 恢复文件
当建立一个归档时, tar 会将文件路径前面的 / (斜线) 去掉。因此,默认恢复文件时将文件释放到当前目录下。 若要将文件释放到指定的目录下,可以使用 -C 选项指定。
1. 建议在释放文件之前先使用 -t 选项替换 -x 选项,进行检查。
2. 一个更安全的方法是在不同的目录释放文件 (例如您的 home 目录),然后比对确认后,再将释放的文件移动到原始位置。
恢复全部文件
# 从磁盘文件恢复全部文件
# tar -zxvpf /backups/full-backup_2008-01-29.tar.gz -C /
# 从磁带中恢复全部文件
# tar -xvpf /dev/st0 -C /
恢复指定文件
# 从磁盘文件恢复指定的文件
# tar -zxvpf /backups/full-backup_2008-01-29.tar.gz -C /
> etc/passwd etc/shadow
# 从磁带中恢复指定的文件
# tar -xvpf /dev/st0 -C / etc/passwd etc/shadow
linux dump
命令详解
功能说明:备份文件系统。
语 法:dump [-cnu][-0123456789][-b <区块大小>][-B <区块数目>][-d <密度>][-f <设备名称>][-h <层级>][-s <磁带长度>][-T <日期>][目录或文件系统] 或 dump [-wW]
补充说明:dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
参 数:
-0123456789 备份的层级。
-b<区块大小> 指定区块的大小,单位为KB。
-B<区块数目> 指定备份卷册的区块数目。
-c 修改备份磁带预设的密度与容量。
-d<密度> 设置磁带的密度。单位为BPI。
-f<设备名称> 指定备份设备。
-h<层级> 当备份层级等于或大雨指定的层级时,将不备份用户标示为"nodump"的文件。
-n 当备份工作需要管理员介入时,向所有"operator"群组中的使用者发出通知。
-s<磁带长度> 备份磁带的长度,单位为英尺。
-T<日期> 指定开始备份的时间与日期。
-u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等。
-w 与-W类似,但仅显示需要备份的文件。
-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。
1.dump/restore
只用来备份和还原ext2/ext3系统,其他文件系统不能使用。
2.dump -0u -f 存放的备份文件路径 备份的文件
-u 参数详解 它的主要作用是把备份的记录写入/etc/dumpdates文件中,另外只用备份分区时才可以使用,在分区下的子目录或者文件时不能使用的。
例如:
我们的Linux系统中分为/ /root /home 这3个分区,那么我们备份/root分区
dump -0u -f /mnt/dumptest /root 同时把备份记录写入了/etc/dumpdates中。我们可以使用cat /etc/dumpdates查看记录。
另外我们备份/home下的子目录,假如我们在/home下有个mk目录,那么我们怎么来备份它呢
dump -0 -f /mnt/dumptest /home/mk 但是它并不写入/etc/dumpdates中,所以我们查看不到。
还原restore
restore -rf 文件就行了
restore -tf 查看备份的文件内容
注意,如果我们需要把备份的文件还原到指定的文件中,那么我们需要进入到指定的文件中,然后使用restore命令就行了
Linux 命令dump的压缩参数z用得好,能使打包文件小很多. 经试验, 最佳的压缩参数应为: -z4 –z5 -z8
压缩级别 用时 原文件大小 压缩后的文件大小
-z2 5:13 1941.56MB 970MB
-z4 7:55 1941.56MB 357MB
-z5 7:56 1941.56MB 353MB
-z8 9:57 1941.56MB 351MB
dump -0uf /root/2 /home/ (缺省:-z2)
dump -z4 -0uf /root/4 /home/
dump –z5 -0uf /root/4 /home/
dump –z8 -0uf /root/4 /home/
转载于:https://blog.51cto.com/yangtong/514662
最后
以上就是务实口红为你收集整理的备份存储(基础概念)的全部内容,希望文章能够帮你解决备份存储(基础概念)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复