原文
笔者是一个中小Linux网站的管理员系统构架是RHEL+PHP+Mysql+Apache日均IP访问量在次一个典型的Linux小型网站由于是小型网站所以没有经费使用磁带机进行系统备份使用的DVD光盘刻录机+网络硬盘随着Linux的应用日益广泛特别是在网络应用方面有大量的网络服务器使用Linux操作系统由于Linux的桌面应用和Windows相比还有一定的差距所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络在服务器端大多使用Linux和Unix的PC端使用WindowsX//XP
一 本地备份
使用mysqldump进行备份非常简单如果要备份数据库”phpbb_db_backup”使用命令
#mysqldump–upphpbb_db_backup>/usr/backups/mysql/phpbb_db_backup
还可以使用gzip命令对备份文件进行压缩
#mysqldumpphpbb_db_backup|gzip>/usr/backups/mysql/phpbb_db_backupgz
恢复数据使用命令
#mysql–upphpbb_db_backup</usr/backups/mysql/phpbb_db_backup--
二 备份数据到DVD盘片
随着MYSQL数据量的增大使用传统CD—R来备份硬盘并不现实采用CD—RW分卷制作实在太麻烦磁带机对于中小企业又过于昂贵另外各个应用程序的复杂度日与剧增处理的数据量也都相当庞大Linux用户常常遇到的问题就是:有什么办法可以经济快捷的对数据做备份与保存随着DVD刻录机和盘片的价格迅速降低使用DVD刻录机用来备份Linux操作系统非常明智的
安装
下面以IDE接口的内置刻录设备为例介绍在Linux环境中使用DVD刻录机Linux需要将IDE接口的刻录设备虚拟为SCSI设备才能进行DVD刻录以上内核Linux发行版本包含了已编译进内核的SCSI仿真所以只要对启动文件作一些小改动USB或(FireWire)接口的外置刻录机就简单多了
把DVD刻录机设备接入计算机第二个IDE接口(dev/hdc)开启电源假设系统用Grub启动用文本编辑器打开/boot/grub/grubconf找到以“kernel”开头的一行在这行内容的未尾加入“hdc=idescsi”例如“kernel/vmlinuzroroot=LABEL=/hdc=idescsi”
安装刻录软件
DVD+RWTools一个包含有用于刻录DVD和映像的软件工具包包括Growisofs和dvd+rwformat官方站点~appro/linux/DVD+RW/
CDRDAODAO即是DiskAtOnce(实时刻录)是一种在烧录过程中没有音轨间的两秒缓沖的刻录方法它可以对磁盘的布局和磁道进行完全的控制这一功能在刻录多来源的盘片相当有帮助
cdrtools包含了一套用于CDDVD刻录的工具Growisofs在创建映像时会使用这个软件包中的mkisofs工具并且用户可以使用readcd来从一个现有的DVD上创建ISO映像此外Cdrecord应用程序可被用于扫描连接系统上的CD/DVD刻录机并且可以使用它来将ISO映像刻录到CD—R(W)光盘上通常大多数Linux版本包括这个软件也可以下载使用;
dvdrecord命令行下的DVD刻录软件命令行下的DVD刻录可用于很多种情形比如当我们通过远程访问主机时机器上的图形界面无法启动时或者机器由于某些原因无法启动GUI时此外在完成一些备份等自动重复的功能时也需要使用命令行工具
以上介绍了一下必须的软件和相关下载网址安装过程比较简单这里就不赘述了
命令行下刻录
使用DVD+RWTools进行刻录工作
growisofs是DVD+RWTools一个工具Growlsofs访问其刻录设备使用的是一种不同的方式它使用/dev下面的Unix路径来连接刻录机不同的系统和发行版中用于刻录机的路径不尽相同所以最好的方法是查看发行版中的帮助在一些系统中一个名为/dev/dvd的软链接会被设置成指向可用的DVD刻录机在本文中使用/dev/dvd来指定刻录机如果系统中路径设置不同那么请使用合适的路径将其取代
()格式化可读写DVD光盘
可以使用DVD+RWTools工具包中提供的dvd十rw—format命令它有两种格式化DVD光盘的方式快速模式完全模式快速模式
#dvd+rwformatblank/dev/dvd
完全模式
#dvd+rwformatblank=full/dev/dvd
()将文件存储至DVD刻录盘
DVD和普通的光盘一样使用的也是ISO文件系统以及同样的通用扩展(Joliet和RockRidge)Growlsofs提供了一种简单的将文件或目录存储至DVD刻录盘的方法先用调用mkisofs工具来创建一个映像并且无需在将该映像存储至硬盘之前就刻录下来其基本的命令格式如下
#growisofsdvdcompatZ/dev/dvdJR/path/to/home/cao
此命令将/path/to/home/cao目录下的文件制作一个映像并且刻录到的DVD光盘
二网络备份
将MYSQL数据放在一台计算机上是不安全的所以应当把数据备份到局域网中其他计算机中假设Mysql服务器IP地址是局域网使用Linux的远程计算机IP地址是局域网使用Windows的远程计算机IP地址是网络拓扑见图
通过NFS网络备份
类似于windows的网络共享UNIX(Linux)系统也有自己的网络共享那就是NFS(网络文件系统)在linux客户端挂接(mount)NFS磁盘共享之前必须先配置好NFS服务端linux系统NFS服务端配置方法如下
()修改/etc/exports增加共享目录
/export/home/sunky(rw)
/export/home/sunky*(rw)
/export/home/sunkylinuxclient(rw)
注/export/home/目录下的sunkysunkysunky是准备共享的目录*linuxclient是被允许挂接此共享linux客户机的IP地址或主机名如果要使用主机名linuxclient必须在服务端主机/etc/hosts文件里增加linuxclient主机ip定义格式如下
linuxclient
若修改/etc/export文件增加新的共享应先停止NFS服务再启动NFS服务方能使新增加的共享起作用使用命令exportfsrv也可以达到同样的效果linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享这里我们假设是NFS服务端的主机IP地址当然这里也可以使用主机名但必须在本机/etc/hosts文件里增加服务端ip定义/export/home/sunky为服务端共享的目录如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了
把MYSQL数据备份到使用Linux的远程计算机需要在两端都安装NFS协议(NetworkFileSystem)远程NFS计算机安装NFS协议后还要修改配置文件/etc/exports加入一行
/usr/backups/mysql/(rwno_root_squash)
表示将/usr/backups/mysql/目录共享这个目录具有远程root用户读写权限保存NFS配置文件然后使用命令
#exportfsa–r
然后重新启动NFS服务
#servicenfsdstart
远程计算机设定后在MYSQL服务器/mnt目录下建立一个backup_share目录
#mkdir/mnt/backup_share
将远程的Linux计算机的/usr/backups/mysql/目录挂载到MYSQL服务器的/mnt/backup_share目录下
#mounttnfs/usr/backups/mysql/mnt/backup_share
将目录挂载进来后只要进入/mnt/backup_share目录就等于到了IP地址那部NFS计算机的/usr/backups/mysql目录中下面使用mysqldump把“phpbb_db_backup”备份到远程计算机
#mysqldumpphpbb_db_backup>/mnt/backup_share/phpbb_db_backup
通过Samba网络备份
Windows网络共享的核心是SMB/CIFS在linux下要挂接(mount)windows的磁盘共享就必须安装和使用samba软件包现在流行的linux发行版绝大多数已经包含了samba软件包如果安装linux系统时未安装samba请首先安装samba当然也可以到网站下载samba软件包现在最新的版本是版然后Windows计算机上建立一个目录(/arc)并且共享赋予其读写权限同样在MYSQL服务器/mnt目录下建立一个backup_share目录然后进行挂载
#mounttsmbfsousername=cjhpassword=XXXX///arc/mnt/backup_share
最后使用命令进行备份
#mysqldumpphpbb_db_backup>/mnt/backup_share/phpbb_db_backup