如何完成UNIX系统中大批量数据的自动备份

  在UNIX系统中为了使数据备份变得轻松容易安全最好的办法就是自动安排系统例行工作(系统调度)在系统空闲时间里自动执行任务如定期删除一些流水文件日志文件定期完成数据的本地备份和异地备份等这样既发挥了UNIX系统的卓越功能又减轻了系统管理员的工作量使数据备份做到及时安全    一建立数据备份用户   首先建立一个用户如userbk将该用户的属主属组设定为Informix权限为在该用户下存放备份的各种数据以便统一备份到磁带上或异地机器上    二用系统例行工作安排作业   UNIX系统有一个始终运行的守护进程该进程可以在正常调度的间隙运行作业用户可以在一个文件中指定crontab命令运行任务cron守护程序在初始化或该文件修改后自动读取其内容crontab文件中指定的各个域为:  分钟 小时 月 日 星期几 命令  如文件/usr/spool/cron/crontabs/root存放超级用户调度的命令内容为:   ?? /etc/cleanup>/dev/null   ?? /usr/lib/cron/logchecker   ???/usr/lib/cleantmp>/dev/null   ???/etc/setclk-rd>/dev/null >&  # ??-/usr/lib/sa/sa -s : -e :-i -A   ?? /etc/custom -V symlinks;#CUSTOM -SYMLINK -REPORT   ??- scosh cronsched-r   ?? scosh cronsched-wr  第一行的作用是在每周星期日执行/etc/cleanup来清除系统上的某些日志文件第二行的作用是每周星期日和星期四:执行/usr/lib/cron/logchecker来检查守护进程cron的日志文件第三行为每天运行/usr/lib/cheantmp命令清除指定目录中的临时文件等  用户可以用命令crontab -u root -e来编辑此文件在文件最后加入一行内容:   ??? kill-user  此行内容为每天运行kill-user此命令文件的任务是终止某些用户的进程  同样用命令crontab-u userbk -e来编辑userbk文件安排userbk用户的作业任务内容如下:   ??? bdbf   ?? ftp -invydbflog   ?   ?rm ?log  第一行内容为每天运行bdbf程序使数据备份至/usr/userbk目录下 并拷贝到磁带上第二行内容为每周星期日运行ydbf程序将备份至/usr/userbk目录下的数据通过网络传送到异地机器上存贮并将备份信息写入 ydbflog日志文件中第三行内容为每月日:删除/usr/userbk下的日志文件    三本地数据备份   笔者使用的操作平台为SCO Openserver系统数据库为Informix和Informix-Online两种版本在Informix上使用的业务有人身保险(用户名rsbx)子女备用金保险(用户名zbbx)等数据以字符串形式保存在各自的目录下备份时可用tar命令或cpio命令将整个用户目录备份即可而在Informix-Online上应用的有综合处理系统(用户名cg库名piccdbs)会计记帐系统(用户名为claf库名accountdbs)等数据存放在Online指定的设备上平时采用ontape -s命令备份但由于此命令实现自动备份较困难并且不能和其它数据备份到一盘磁带上会造成备份介质的浪费所以最好采用 dbexport命令备份数据运行dbexport命令的前提是调用数据库的相关用户必须退出一旦有一个应用点没有退出备份就会失败为了确保数据的安全备份需编制一个终止进程的命令文件即前述中由超级用户调度的kill-user程序  程序/usr/bin/kill-user  ps -u rsbx >tmp-a  ps -u zbbx >>tmp-a  ps -u cgl >>tmp-a  ps -u claf >>tmp-a  cut -cl- tmp-a >tmp-b  while read a  do  kill- $a  echo kill alread$a|cat>>/tmp/kill-userlog  done <tmp-b  rm tmp-a tmp-b  程序前行为列用户进程并将所要终止的进程存放至/tmp/K-user文件中后面的循环语句是杀死进程并将运行信息存放至/tmp/kill-userlog日志文件中以备查阅此程序放在/下或/usr/bin下    程序/usr/user/bdbf 本地数据备份程序  INFORMIXDIR=/user/informix  PATH=$PATH:$HOME/bin::$INFORMIXDIR  /bin  INFORMIXSERVER=cbps-shm  ONCONFIG=onconfigcbps  export PATH MAIL INFORMIXDIR INFORMIXSERVER ONCONFIG  rm -r ?Z  find /usr/rsbx |cpio-oacvB>RSBX;compress RSBX  find /usr/zbbx |cpio-oacvB>ZBBX;compress ZBBX  …  rm-r?exp  dbexport -c picc -ss  find /piccexp | cpio-oacvB>PICC;compress PICC  dbexport -c account -ss  find /accountexp | cpio-oacvB>ACCOUNT;compress ACCOUNT  …  sleep   tar cv ?Z  date | cat>>userbklog  echoPICC ACCOUNT RSBX ZBBXbackup over|cat>>userbklog  程序中所设置的环境变量同Informix用户的环境变量设置一样所有需要备份的数据用归档命令cpio拷贝至/usr/userbk目录下用户可根据自已的实际情况自行添加然后用tar命令统一将所有文件拷贝至磁带上最后将备份信息写到日志文件userbklog中这样系统管理员只需每天早晨上班后检查一下是否备份好然后更换一般磁带即可    四异地数据备份   熟悉网络的人都知道FTP的功能十分强大它主要用于网络之间的文件传输一般情况下用户传输多个文件时需登录服务器逐一传输只有等待一个文件传送完毕之后才能传输下一个这样用户需花很长时间守候在终端前等待一个文件传输结束为了简化工作在UNIX平台上FTP支持非在线传输即用户只需把要输入的命令逐条写进shell脚本FTP传输文件时调用脚本即可例:对上述/usr/userbk目录下的数据文件的异地备份可用如下脚本来完成  程序/usr/userbk/ydbf  open hostgs  user mybackup mypasswd  mpt ?Z  bye  程序中的hostgs为异地的主机名该主机名需在本地主机/etc/hosts文件中定义mybackupmypasswd是异地主机中为备份数据而建立的用户名和口令字当系统例行程序调用此程序时可将数据全部备份至异地的hostgs主机中mybackup用户下    五数据恢复   本地备份到磁带上的数据可用tar xv命令将数据文件拷贝到/usr/userbk目录下异地备份的数据可用FTP命令传输至该目录下或者直接用/usr/userbk目录下的数据用uncompress?Z解压    对于Informix版以字符串形式存放的数据可直接用cpio命令来恢复如:rsbx用户数据可用如下命令来恢复    cpio -icduvB < RSBX  对于Informix-Online的数据恢复需采用如下方法如对picc数据库的恢复可用如下命令来恢复  cpio -icduvB < PICC  dbimport picc -d workdbs  其中workdbs为Online建立的数据空间须注意的是恢复数据库时原数据库必须删除     别想一下造出大海,必须先由小河川开始。

如何完成UNIX系统中大批量数据的自动备份

相关文章:

你感兴趣的文章:

标签云: