Linux 在备份时考虑的因素有哪些呢?
备份哪些档案:
例如在账号管理那一篇当中,我们知道最起码主机的账号信息在/etc/*及/home/*等等档案都是重要的!
选择什么备份的媒介:
是可擦写光盘、另一棵硬盘、同一颗硬盘的不同 partition、还是使用网络备援系统?哪一种的速度最
快,最便宜,可将数据保存最久?
考虑备份的方式:
是完全备份(类似 ghost)还是部分备份即可?
备份的频率:
例如 MySQL 数据库是否天天备份、若完全备份,需要多久进行一次?
备份使用的工具为何:
是 tar 还是 cpio 等等?
哪些 Linux 数据具有备份的意义
具有备份意义的档案通常可以粗分为两大类,一类是系统一类则是类似网络服务的数据库
主机系统需要备份的档案:
这方面的档案主要跟『账号』有关系!主要有哪些账号的档案需要备份呢?就是 /etc/passwd,
/etc/shadow, /etc/group, /etc/gshadow, /home 底下的账号等等,而由于 Linux 预设的主机
信息设定参数文件都在 /etc/ 底下,所以只要将这个档案备份下来的话,那么几乎所有的设定档都
会存在的!而由于 /home 底下是每个人的家目录,自然也需要来备份一番!再来,由于使用者会有
邮件吧!所以呢,这个 /var/spool/mail 内容也需要备份呦!另外,由于如果您曾经自行更动过核心
,那么 /boot 里头的信息也就很重要啰!所以啰,这方面的数据您必须要备份的档案为:
/etc/ 整个目录
/home 整个目录
/var/spool/mail
/boot
/root
如果您自行安装过其它的套件,那么 /usr/local/ 也最好备份一下!
网络服务的数据库方面:
这部份的数据可就多而且复杂了,如果您的网络套件设定都是以原厂提供的为主,那么您的设定档案
大多是在 /etc 底下,所以这个就没啥大问题了!但是若您的套件大多来自于自行的安装,那么
/usr/local 这个目录可就相当的重要了!这里我们假设我们提供的服务套件都是使用原厂的 RPM
安装的!所以要备份的数据文件有:
数据设定档案:
/etc/ 整个目录
/usr/local/ 整个目录
系统 www + MySQL:
/var/www 整个目录 ( 系统的家目录 )
/var/lib/mysql 整个目录
其它你在 Linux 主机上面提供的数据库数据文件!
推荐需要备份的目录:
由上面的介绍来看的话,那么如果您的硬件或者是由于经费的关系而无法全部的数据都予以备份时,
建议您至少需要备份这些目录呦!
/boot
/etc
/home
/root
/usr/local
/var(注:这个目录当中有些暂存目录则可以不备份!)
不需要备份的目录:
有些数据是不需要备份的啦!例如我们在 档案与目录系统 里头提到的 /proc 这个目录是在记录目
前系统上面正在跑的程序 ( processes ) ,这个数据根本就不需要记录的呢!所以就把他拿掉!此
外,外挂的机器,例如 /mnt 里面都是挂载了其它的硬盘装置、光驱、软盘机等等,这些也不需要备
份吧!?所以啰!底下有些目录可以不需要备份啦!
/dev :这个随便你要不要备份
/proc:这个真的不需要备份啦!
/mnt :如果你没有在这个目录内放置你自己系统的东西,也不需要备份
/tmp :干嘛存暂存档!不需要备份!
一些装置的档案代号:
光驱: /dev/cdrom
磁带机: /dev/st0 ( SCSI 界面 ), /dev/ht0 ( IDE 界面 )
软盘机: /dev/fd0, /dev/fd1
硬盘机: /dev/hd[a-d][1-16] ( IDE 界面 ), /dev/sd[a-p][1-16] ( SCSI 界面 )
打印机: /dev/lp[0-2]
通常在备份的时候,除非有磁带机或者有特殊的功用,否则通常只使用 tar !这里介绍一下 cpio 这个
东西!如果你有磁带机的话, cpio 可是相当好用的一个指令,『那么我为什么
不直接给他 copy 过去备份的地点就好了呢!?』既然可以在 copy 的过程里面增加压缩的功能来减低
整个储存空间的消耗,为何不压缩?!那当然还是压缩一下比较好!我还是比较喜欢 tar,cpio
完整备份的工具:
完整备份的工具里面,三个工具 tar, cpio 与 dump 都很常被使用!至于 cpio 的话,他最大的好处就
是『 cpio 连一般的装置文件都可以 copy 过来!』很棒吧!所以使用 cpio 进行完整备份是很棒的一
个选择。不过需要注意的是,由于 cpio 需要配合 find 才可以正常的动作!这里请特别留意啰!另外
,使用 cpio 常常配合另一颗完全用来备份的硬盘或者是磁带机才好!
1. 使用 cpio 来备份与反备份
[root @test /root]# find / -print | cpio -covB > /dev/st0 <==备份至 tap
[root @test /root]# cpio -iduv < /dev/st0 <==由 tap 将数据存回系统中!
2. 使用 tar 来备份
[root @test /root]# tar -zcvfP host.tar.gz / --exclude /proc --exclude /mnt --exclude /tmp
[root @test /root]# tar -zxvf host.tar.gz
分备份的基础工具:
至于部分备份方面,我们就以简单的 tar 来说明一下吧!!假如我们需要备份的数据是每天的 MySQL
数据库时,由于我想让每天的数据都存成不同的档案,而要分别档案的新旧又以日期来分别最简单了!
所以我就可以这样做:
[root @test /root]# tar -zcvf mysql.`date +%Y-%m-%d`.tar.gz /var/lib/mysql
如果忘记了上面的指令代表什么意思,那么请回到 bash 那一章去瞧一瞧吧!
[root @test /root]# tar -N ‘2002/07/05‘ -zcvf home.tar.gz /home
只有在比 2002/07/05 还要新的档案,在 /home 底下的档案才会被打包进 home.tar.gz 中!
这样就能将 mysql 的数据库压缩备份至 mysql.2002-07-06.tar.gz 这个档案,并且日期会每天都不
一样!呵呵!这样一来如果系统的数据库出了问题,就可以马上的回复了!而且还有很多的档案可供
回复呢!不错吧!此外,也可以利用类似上面的第二个范例的例子,将最新的资料备份就好,其它的
资料则不予以更动!嘿嘿!提供了更完善的方式呢!
原文地址:http://www.cnblogs.com/lvdongjie/p/3835492.html