proftpd ,基于mysql磁盘配额使用比较失望。

基于mysql 验证 proftpd 安装成功。

测试发现proftpd跟SERV-U一样,无法计算实际FTP文件大小且性能上也不是很好,因为客户端每个操作都要查询或修改MYSQL数据行。

ContractedBlock.gif ExpandedBlockStart.gif proftpd.conf
None.gif# This is a basic ProFTPD configuration file (rename it to
None.gif
'proftpd.conf' for actual use.  It establishes a single server
None.gif
and a single anonymous login.  It assumes that you have a user/group
None.gif
"nobody" and "ftp" for normal operation and anon.
None.gif
None.gifServerName                      
"ProFTPD Default Installation"
None.gifServerType                      standalone
None.gifDefaultServer                   on
None.gif
None.gif# Port 
21 is the standard FTP port.
None.gifPort                            
21
None.gif
None.gif# Umask 
022 is a good standard umask to prevent new dirs and files
None.gif# from being group 
and world writable.
None.gifUmask                           
022
None.gif
None.gif# To prevent DoS attacks, set the maximum number of child processes
None.gif# to 
30.  If you need to allow more than 30 concurrent connections
None.gif# at once, simply increase this value.  Note that this ONLY works
None.gif# in standalone mode, in inetd mode you should 
use an inetd server
None.gif# that allows you to limit maximum number of processes per service
None.gif# (such as xinetd).
None.gifMaxInstances                    
30
None.gif
None.gif# Set the user 
and group under which the server will run.
None.gif#User                           nobody
None.gif#Group                          nobody
None.gif
None.gifUser                           ftpUser
None.gifGroup                          ftpGroup
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif# 最大的用户数
None.gif#MaxClients      
100
None.gif#MaxHostsPerUser 
1
None.gif#MaxClientsPerUser 
2
None.gif# 对不起,一个IP只允许一个连接
None.gif#MaxClientsPerHost 
1
None.gif
None.gif#RootLogin off
None.gifRequireValidShell off
None.gif#UseReverseDNS     off
None.gif#IdentLookups      off
None.gif#TimeoutStalled    
600
None.gif#TimeoutLogin      
900
None.gif#TimeoutIdle       
600
None.gif#TimeoutNoTransfer 
600
None.gif# 让proftp支持现在流行的FXP传输方式,默认是不支持的
None.gif#AllowForeignAddress on
None.gif
None.gif# 屏蔽服务器版本信息
None.gif#ServerIdent off
None.gif
None.gif
None.gif
None.gifUseReverseDNS off
None.gifIdentLookups off
None.gif
None.gif
None.gif
None.gif######################## 下面是磁盘限额Quota设置 ############
None.gif#启用磁盘限额
None.gifQuotaDirectoryTally on
None.gif
None.gif
None.gif#磁盘限额单位 b
"|"Kb"|"Mb"|"Gb"
None.gif
QuotaDisplayUnits "Mb"
None.gif
None.gifQuotaEngine on
None.gif
None.gif#磁盘限额日志记录
None.gifQuotaLog 
"/var/log/proftpd.quotalog"
None.gif
None.gif#打开磁盘限额信息 
"quote SITE QUOTA"命令
None.gifQuotaShowQuotas on
None.gif####################### 完成磁盘配额设置 ####################
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifSQLConnectInfo ftp@localhost:
3306 root 123456
None.gifSQLAuthTypes Backend Plaintext
None.gif
None.gif
None.gif
None.gif#指定用来做用户认证的表的有关信息。(将在后面创建)
None.gifSQLUserInfo FTPUSERS userid passwd uid gid homedir shell
None.gifSQLGroupInfo FTPGRPS groupname gid members
None.gif
None.gif#数据库认证
None.gifSQLAuthenticate users groups usersetfast groupsetfast
None.gif
None.gif#proftpd进行的mysql调用语句,别修改任何地方
None.gifSQLNamedQuery get
-quota-limit SELECT "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 FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
None.gif
None.gifSQLNamedQuery get
-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
None.gif
None.gifSQLNamedQuery update
-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies
None.gif
None.gifSQLNamedQuery insert
-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
None.gif
None.gifQuotaLimitTable sql:
/get-quota-limit
None.gifQuotaTallyTable sql:
/get-quota-tally/update-quota-tally/insert-quota-tally
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gifCreateHome on
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif
None.gif# To cause every FTP user to be 
"jailed" (chrooted) into their home
None.gif# directory, uncomment this line.
None.gifDefaultRoot 
~
None.gif
None.gif# Normally, we want files to be overwriteable.
None.gifAllowOverwrite          on
None.gif
None.gif# Bar 
use of SITE CHMOD by default
None.gif
<Limit SITE_CHMOD>
None.gif  AllowAll
None.gif
</Limit>
None.gif
None.gif# A basic anonymous configuration, no upload directories.  If you do 
not
None.gif# want anonymous users, simply delete this entire 
<Anonymous> section.
None.gif
<Anonymous ~ftp>
None.gif# User                          ftp
None.gif# Group                         ftp
None.gif
None.gif  # We want clients to be able to login with 
"anonymous" as well as "ftp"
None.gif  UserAlias                     anonymous ftp
None.gif
None.gif  # Limit the maximum number of anonymous logins
None.gif  MaxClients                    
10
None.gif
None.gif  # We want 
'welcome.msg' displayed at login, and '.message' displayed
None.gif  # in each newly chdired directory.
None.gif  DisplayLogin                  welcome.msg
None.gif  DisplayChdir                  .message
None.gif
None.gif  # Limit WRITE everywhere in the anonymous chroot
None.gif  
<Limit WRITE>
None.gif    DenyAll
None.gif  
</Limit>
None.gif
</Anonymous>
None.gif
None.gif
None.gif

 

ContractedBlock.gif ExpandedBlockStart.gif proftpd 建表
None.gifCREATE TABLE FTPGRPS(
None.gifgroupname 
text NOT NULL,
None.gifgid 
smallint(6NOT NULL default 0,
None.gifmembers 
text NOT NULL
None.gif)
None.gif
None.gif
None.gif
INSERT INTO FTPGRPS VALUES ('FTPGRP'2001'FTPUSR');
None.gif
INSERT INTO FTPGRPS VALUES ('ftpusers'2002'ftp');
None.gif
None.gif
CREATE TABLE FTPUSERS (
None.gifuserid 
text NOT NULL,
None.gifpasswd 
text NOT NULL,
None.gifuid 
int(11NOT NULL default '0',
None.gifgid 
int(11NOT NULL default '0',
None.gifhomedir 
text,
None.gifshell 
text
None.gif)
None.gif
None.gif
None.gif
INSERT INTO FTPUSERS VALUES ('lcx1''123456'20012001'/home/www/lcx1', "");
None.gif
None.gif
None.gif
CREATE TABLE quotalimits (
None.gifname 
varchar(30default NULL,
None.gifquota_type enum(
'user','group','class','all'NOT NULL default 'user',
None.gifper_session enum(
'false','true'NOT NULL default 'false',
None.giflimit_type enum(
'soft','hard'NOT NULL default 'soft',
None.gifbytes_in_avail 
float NOT NULL default 0,
None.gifbytes_out_avail 
float NOT NULL default 0,
None.gifbytes_xfer_avail 
float NOT NULL default 0,
None.giffiles_in_avail 
int(10) unsigned NOT NULL default 0,
None.giffiles_out_avail 
int(10) unsigned NOT NULL default 0,
None.giffiles_xfer_avail 
int(10) unsigned NOT NULL default 0
None.gif)
None.gif
None.gif
None.gif
None.gif
CREATE TABLE quotatallies (
None.gif name 
VARCHAR(30NOT NULL,
None.gif quota_type ENUM("
user", "group", "class", "all") NOT NULL,
None.gif bytes_in_used 
FLOAT NOT NULL,
None.gif bytes_out_used 
FLOAT NOT NULL,
None.gif bytes_xfer_used 
FLOAT NOT NULL,
None.gif files_in_used 
INT UNSIGNED NOT NULL,
None.gif files_out_used 
INT UNSIGNED NOT NULL,
None.gif files_xfer_used 
INT UNSIGNED NOT NULL
None.gif );
None.gif

 

2008年8月27日

无法计算实际FTP文件大小<-----抱歉,没有深入了解他的配置,proftpd新版已经可以实时计算空间大小了。

QuotaOptions ScanOnLogin #登录时扫描用户home目录更新文件大小和数量

转载于:https://www.cnblogs.com/LCX/archive/2008/08/26/1276718.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值