为了系统的安全,我们经常要用到各种备份工具软件。Mirrordir官方网址:http://mirrordir.sourceforge.net/ 它的工具功能比较强大,比较适合作能做硬盘和分区镜像。
一、 软件下载安装:
mirrordir有三种包提供,一种是rpm的,这种包能直接安装;另外就是源码包;src.rpm和tar包。本文是采用RPM包安装的方法。
# wget http://mirrordir.sourceforge.net/mirrordir-0.10.49-1.i386.rpm
#rpm -ivh mirrordir-0.10.49-1.i386.rpm
二、分区镜像操纵
如果我想为/dev/hda1中的home目录做一个镜像到/dev/hdb9磁盘做一个home的镜像;因为关系到安全,比如把/dev/hda的磁盘的东西都删除了,所以在同一个磁盘内做镜像意义不是太大。所以最好把要镜像的硬盘分区放在其他的硬盘分区中。
1. Linux的硬盘分区规定
设备管理
在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。例如,第一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为 hdb;下面以此类推。而 SCSI 设备就应该是 sda、sdb、sdc 等。
分区数量
要进行分区就必须针对每一个硬件设备进行操作,这就有可能是一块IDE硬盘或是一块SCSI硬盘。对于每一个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。例如第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。
各分区的作用
在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。对于早期的 DOS 和 Windows(Windows 2000 以前的版本),系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。
主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。
对于逻辑分区,Linux 规定它们必须建立在扩展分区上而不是主分区上。因此,我们可以看到扩展分区能够提供更加灵活的分区模式,但不能用来作为操作系统的引导。
2.首先我们要挂载/dev/hdb9
我们在/dev/hda1的磁盘中,也就是当前的操作系统中建一个目录hdb9
# mkdir /mnt/hdb9 ##见目录
然后我们挂载/dev/hdb9
#mount /dev/hdb9 /mnt/hdb9
3.操作一个镜像一个目录
本文是操作/dev/hda1的一个目录/home,所以我们也要在/mnt/hda9已经挂载的磁盘分区中建一个/home目录。
#mkdir /mnt/hdb9/home
# mirrordir /home /mnt/hda9/home
这样就成功完成操纵。我们可能查看一下/mnt/hdb9中,可以发现home目录的存在,和镜像源的home目录是一样的。
4.恢复分区
如果我们在/dev/hda7中的目录/home里面的东西都被破坏了,我们就可以用mirrordir来恢复它。命令非常简单。
# mirrordir /mnt/hda9/home /home
三、 自动化备份
1.corn服务配置简介
系统管理员通常需要在每天,每周,每月做备份和运行其他的进程。虽然这些进程都可以手工运行,但是通常都需要安排它们自动运行。cron守护进程的作用就在与此。cron守护进程在系统引导的时候和系统管理员和其他用户执行时间调度任务提交的时候启动。你可以用ps 命令来检查是否cron守护进程正在运行。
# ps –ef grep cron #cron正在运行吗
可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
#ntsysv
打开窗口,在crond服务选项加上*(用空格键),然后重新启动系统,这样系统会启动cron服务。
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了。cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab命令用来操作每个用户的守护程序和该执行的时间表,使用权限是所有用户。
格式:crontab [ -u user ] 文件
crontab [ -u user ] { -l -r -e }
主要参数:
-u :设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数。
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 vi。
-r : 删除目前的时程表 。
-l : 列出目前的时程表。
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
2.使用cron调用nirrordir命令
(1)首先在/usr/local/sbin目录下建立一个脚本文件mirror.sh,内容如下:
#!/bin/sh
#
# mirror.sh: 镜像the /home 分区到第二块分区
mount /dev/hdb9 /mnt/hdb9
mirrordir /home /mnt/hda9/home
/bin/umount /mnt/hdb9
(2)建立定时器设置文件:
#crontab -e
此时启动vi编辑器,输入以下内容:
0 * * * * /usr/local/sbin/mirror.sh
用vi编辑器存盘退出。这时在/var/spool/cron/目录下会生产一个root的文件。
(3)使用 crontab命令添加到任务列表中:
#crontab -u root
这样用户在每天的0点自动进行分区备份。
作者:华江