MySQL下数据备份系统解决方案

2008-02-23 07:42:08来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

随着电脑网络的普及,电脑病毒有了快速传播的机会,并且对数据文档的破坏日益严重,用户需要经常对个人重要数据做异地备份。基于多用户和数据隐私的考虑,提出了个人数据备份系统解决方案。他利用网络存储设备具备的大容量、高可靠性、高安全性特点,
CREATE TABLE users (

   userid varchar(50) NOT NULL, 

   //用户的FTP 账号名称

   password varchar(50), 

   // 用户的FTP账号密码

   uid int(5) DEFAULT '0' NOT NULL, 

   //用户主目录的 uid

   gid int(5) DEFAULT '65533' NOT NULL, 

   //用户主目录的 gid

   homedir varchar(255), 

   //用户主目录

   count int(11) DEFAULT '0', 

   //登陆次数

   ftime timestamp(14), 

   //最后一次登陆时间

   shell varchar(255) DEFAULT '  /bin/bash',

   PRIMARY KEY (userid) 

   //主关键字

);


在proftpd.conf中增加有关MySQL的配置,代码如下:

SQLConnectInfo ftpusers@MySQL服务器名 username password 

//数据库连接

SQLDoGroupAuthoff

SQLAuthTypesPlaintext

SQLDoAuthon

SQLHomedirOnDemandon

SQLUserTableusers  

//指定使用的表名

SQLUsernameFielduserid  

//以下信息需要和users表中的字段对应

SQLPasswordFieldpassword

SQLHomedirFieldhomedir  

SQLLoginCountFieldcount

SQLShellFieldshell

SQLAuthoritativeoff

SQLLogStatson

SQLMinUsergid99

SQLMinUseruid14

SQLLogDirsfcdir

SQLDefaultgid99


创建用户时需要在表中增加记录,即完成账号的增加。在用户第一次使用该账号登陆时,系统自动创建用户主目录并依据uid和gid的值来配置目录的用户和组。根据配置文档中的缺省空间限量的值生成限量文档。以下是ProFTPD.conf中配置缺省空间限量的配置:

DefaultQuota204800000 //200MB大小

QuotaTypehard


3. 删除用户

删除用户需要完成两方面工作:一方面需要对MySQL的users表做相应的删除;另一方面要删除用户主目录。需要注意的是,由于采用浏览器方式,研发系统的执行用户应具备对用户主目录的写权限。用户主目录的用户和组是由users表中的uid和gid来确定的。

4. 修改空间限量

在用户主目录创建后,系统自动生成.quota空间限量文档。该文档只能被root修改,文档的格式为“总容量 使用的容量”,账号管理系统只需使用新的限量文档覆盖即可。对“使用的容量”,FTP服务器每次登陆时会自动计算。如何使软件系统具备root权限,能够参看“sudoers”。

5.日志记录

从安全角度考虑,日志是很重要的一部分。传统的日志都是记录到文档中,而ProFTPD提供了将日志记录到数据库中的功能。这既方便了日志的查询,又极大地提高了日志查询速度。

首先需要在MySQL数据库中创建FTP_log数据表,代码如下:

CREATE TABLE FTP_log (

   id int(12) unsigned DEFAULT '0' NOT NULL auto_increment,

   //主关键字

   filename varchar(255), 

   //文档名

   filesize int(10) unsigned,

   //文档大小

   email varchar(20) NOT NULL, 

   //用户的账号

   ip varchar(15) NOT NULL, 

   //用户的ip地址

   action varchar(255), 

   //用户操作的内容

   ftime datetime, 

   //操作的时间

   PRIMARY KEY (id)

);


修改ProFTPD.conf文档,将“日志记录到文档”关闭,配置如下:

TransferLognone


增加关于日志的配置,需要把用户的上载和下载及删除操作记录到日志中,记录的内容用户能够定置。例如:

SQLLog RETR,STOR,DELE insert FTP_log "null,'%f', %b, '%u','%h','%r',now()"


被记录的操作有以下几个:

◆RETR,文档的下载;

◆STOR,文档的上传;

◆DELE,文档的删除。

其中日志记录有以下内容:

◆%f,上载或下载的文档名称包含绝对路径;

◆%b,文档的大小,以字节为单位;

◆%u,用户使用的FTP账号;

◆%h,用户的IP地址;

◆now(),为MySQL提供系统时间函数。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 在UNIX系统下安装MySQL

下一篇: MySQL在服务器端出现ERROR