文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MySQL下数据备份系统解决方案

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

时间:2007-02-17  来源:PHP爱好者

随着计算机网络的普及,计算机病毒有了快速传播的机会,并且对数据文件的破坏日益严重,用户需要经常对个人重要数据做异地备份。基于多用户和数据隐私的考虑,提出了个人数据备份系统解决方案。它利用网络存储设备具有的大容量、高可靠性、高安全性特点, 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提供系统时间函数。
php爱好者站 http://www.phpfans.net PHP|MySQL|javascript|ajax|html.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载