转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
proftpd + mysql + quota配置完全指南(收藏)         ★★★★

proftpd + mysql + quota配置完全指南(收藏)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2103 更新时间:2009/4/22 20:56:38
T NULL,
files_in_avail INT UNSIGNED NOT NULL,
files_out_avail INT UNSIGNED NOT NULL,
files_xfer_avail INT UNSIGNED NOT NULL
);

CREATE TABLE quotatallies (
name VARCHAR(30) NOT NULL,
quota_type ENUM("user", "group", "class", "all") NOT NULL,
bytes_in_used FLOAT NOT NULL,
bytes_out_used FLOAT NOT NULL,
bytes_xfer_used FLOAT NOT NULL,
files_in_used INT UNSIGNED NOT NULL,
files_out_used INT UNSIGNED NOT NULL,
files_xfer_used INT UNSIGNED NOT NULL
);

 

以上quotalimits表是FTP用户的磁盘限额配置信息,quotatallies表存放的是用户磁盘限额变动的信息。

quotatallies表不需要作修改,由程序自动记录

下面是quotalimits 表中各字段的含意:

quota_type 磁盘限额的鉴别
bytes_in_avail 上传最大字节数,就是FTP用户空间容量
bytes_out_avail 下载最大字节数
bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)
files_in_avail 总共能上传文件的数目
files_out_avail 能从服务器上下载文件的总数目
files_xfer_avail  总共可传输文件的数目(上传和下载)

7       数据表数据初始化

表全部建完后,就可以创建FTP用户了,在ftpUser表中插入一条记录如下:

INSERT INTO ftpUser (userid, passwd, uid, gid, homedir, shell) values (''''shine'''', password(‘yourpassword’), ''''2003'''', ''''2003'''', ''''/home/shine'''', '''''''' );

以上建立了一个新的FTP用户,用户名为shine,密码为yourpassword,可以看到密码用mysql的系统函数password进行了加密,用户id和组id均为2003,这里随便填,我填了和系统用户ftpUser和系统组ftpGroup相同的id,不知道会不会有问题。/home/shine为用户主目录,用户shell为空。

如果要想应用到更多的功能,且建立了组的数据表,你也要为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。

INSERT INTO ftpGroup VALUES (''''ftpGroup'''', 2003, ''''ftpUser'''');

下面再来建立初始的用户磁盘限额信息:

将已经建立的shine帐号赋予50M空间,最多能上传500个文件,文件传输流量为512k,总共只能传输2000个文件,插入记录如下:

INSERT INTO quotalimits (name,quota_type,per_session,limit_type,bytes_in_avail,bytes_out_avail,bytes_xfer_avail,files_in_avail,files_out_avail,files_xfer_avail)VALUES (‘shine’, ‘user’, ‘true’, ‘soft’, ‘51200000’, ‘0’,’512000’,‘500’,’0’,’2000’);

8       运行proftpd

执行以下命令启动proftpd服务:

/usr/local/proftpd/sbin/proftpd

开一个控制台输入:

ftp ftpHostName

输入用户名:shine

输入用户密码:yourpassword

成功登录后执行:

quote site quota

可以看到此用户的磁盘使用情况。

9       配置proftpd执行脚本

cd /usr/local/proftpd/bin

vi proftpd

输入以下内容:

#!/bin/sh

 

# ProFTPD files

FTPD_BIN=/usr/local/proftpd/sbin/proftpd

FTPD_CONF=/usr/local/proftpd/etc/proftpd.conf

PIDFILE=/usr/local/proftpd/var/proftpd.pid

# If PIDFILE exists, does it point to a proftpd process?

if [ -f $PIDFILE ]; then

        pid=`cat $PIDFILE`

fi

if [ ! -x $FTPD_BIN ]; then

        echo "$0: $FTPD_BIN: cannot execute"

        exit 1

fi

case $1 in

        start)

        if [ -n "$pid" ]; then

                echo "$0: proftpd [PID $pid] already running"

                exit

        fi

        if [ -r $FTPD_CONF ]; then

                echo "Starting proftpd..."

                $FTPD_BIN -c $FTPD_CONF

        else

                echo "$0: cannot start proftpd -- $FTPD_CONF missing"

        fi

        ;;

        stop)

        if [ -n "$pid" ]; then

                echo "Stopping proftpd..."

                kill -TERM $pid

        else

                echo "$0: proftpd not running"

                exit 1

        fi

        ;;

        restart)

        if [ -n "$pid" ]; then

                echo "Rehashing proftpd configuration"

                kill -HUP $pid

        else

                echo "$0: proftpd not running"

                exit 1

        fi

        ;;

        *)

        echo "usage: $0 {start|stop|restart}"

        exit 1

        ;;

esac

exit 0

存盘退出。

chmod +x proftpd

修改此脚本为可执行。

ln –s ./proftpd /etc/rc.d/init.d/proftpd

在/etc/rc.d/init.d/目录中做一个软链接指向proftpd脚本文件。

 

cd /etc/rc.d/rc0.d

ln –s ../init.d/proftpd ./K15proftpd

cd ../rc1.d

ln –s ./init.d/proftpd /K15proftpd

cd ../rc2.d

ln –s ./init.d/proftpd /K15proftpd

cd ../rc3.d

ln –s ./init.d/proftpd /S91proftpd    #注意S后面的数字,如果在此目录中存在mysql相关的链接文件,请保证这个数字比那个文件中S后面的数字大!这样proftpd将在mysql数据库服务启动以后再启动,这是个良好的启动顺序,当然不用管它也没什么问题。

cd ../rc4.d

ln –s ./init.d/proftpd /S91proftpd

cd ../rc5.d

ln –s ./init.d/proftpd /S91proftpd

cd ../rc6.d

ln –s ./init.d/proftpd /K15proftpd

 

经过以上设置,每次系统开机时proftpd服务将会自动启动,关机时则会自动停止。

当然,也不必在每个rc目录中都加上链接,实际上只需要在执行启动任务的rc目录中加上就行了,比如rc3.d,rc4.d,rc5.d,其中rc4.d也不是必需的,而rc3.d是在系统进入运行级三时自动运行的,无论如何这里要有proftpd的链接,运行级三是系统正常启动的级别,而运行级四则是预留的用户自定义的运行级,所以可不管它,运行级5是启动X-Window的,但一般情况下是先进入运行级三,然后才是运行级五,所以也不用在rc5.d目录中建立proftpd的链接,而运行级六是系统重启,就不用说了。

一句题外话:

    想切换系统运行级可执行:init number,number是代表运行级的数字,举个例子:

init 5等同于startx

init 6等同于reboot

其它运行级就不在这里一一介绍了,有兴趣的朋友可自行查阅相关资料。

上一页  [1] [2] 


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [MySql]解决Table xxx is marked as crashed and should …
[MySql][MySQL]快速解决"is marked as crashed and shoul…  [MySql]MySQL DELETE语法用法详解
[MySql]mysql中时间日期格式化  [MySql]修改mysql导入文件大小限制
[其他]MySql常用命令大全  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[MySql]解决mysql 1040错误Too many connections的方法  [Sql Server]Sql精妙语句--各种求值函数
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台