最新消息:时间抓起来说是金子,抓不住就是流水。

用python 快速安装proftp 及简单配置

LINUX技术 镜花水月 4720浏览 1评论

运维技术群:35666658

import os,sys
#version 1.0
#2013-09-09
#luohongjiang
#qq:123769752
#config file path
_config_file="/usr/local/etc/proftpd.conf"
def init(ip,user,_path):
    #ip address
    IP=ip
    #ftp user
    _user=user
    #configure ftp server path
    _config_path=_path

def main():
    help='''
    $2 is ftp server login host/IP
    $3 is ftp server login user
    $4 is ftp server login user directory
    =======================================
    [install] install proftp soft
    [conf $2 $3] config proftp soft,login user directory.
                $2 is ftp server login user
                $3 is ftp server login user directory
    '''
    print help
def downandinstall():
    os.system("yum -y install gcc make autoconf  pcre-devel openssl* openssh*")
    os.system("curl -o proftpd-1.3.5rc3.tar.gz ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5rc3.tar.gz")
    os.system("tar -xvf proftpd*.tar.gz")
    os.system("mkdir -p /var/spool/proftpd")
    os.chdir("proftpd-1.3.5rc3")
    os.system("./configure –prefix=/usr/local –enable-shadow –enable-autoshadow   –enable-facl –enable-pcre   –disable-ipv6  –enable-openssl –with-mysql-config –with-modules=mod_ratio:mod_readme:mod_facl") 
    os.system("make;make install") 

###########################
def main_conf():
    configfile='''
ServerName          "FTP server"
ServerType          standalone
DeferWelcome            off
Umask                           002
MaxInstances                    30
Port                  21
TimeoutLogin         120
TimeoutIdle          600
TimeoutNoTransfer    900
TimeoutStalled      3600
User                ftp
Group               ftp
TimesGMT off
UseReverseDNS        off
TransferLog         /var/spool/proftpd/xferlog.legacy
LogFormat         default "%h %l %u %t \"%r\" %s %b"
LogFormat           auth    "%v [%P] %h %t \"%r\" %s"
LogFormat           write   "%h %l %u %t \"%r\" %s %b"
    
<Global>
                DisplayLogin           welcome.msg
                AllowOverwrite         yes
                IdentLookups         off
                ExtendedLog     /var/spool/proftpd/access.log WRITE,READ write RNFR DELE
                ExtendedLog     /var/spool/proftpd/auth.log AUTH auth
</Global>
    '''
    open(_config_file,"wb+").write(configfile)

def virtualhost_conf(IP,_user):
    configfile='''
<VirtualHost  %s>
        ServerAdmin             g_linux@qq.com
        ServerName              "FTP Server"
        TransferLog              /var/spool/proftpd/my_ftp.log
        MaxLoginAttempts        3
        RequireValidShell       no
        MaxClients              50
        MaxClientsPerHost       10     
        MaxClientsPerUser 10 
        DefaultRoot             /home/www
        Group                   www
        TransferRate STOR 300 user upload
        <Limit LOGIN>
            AllowUser %s
            DenyAll
        </Limit>
    '''%(IP,_user)
    open(_config_file,"ab+").write(configfile)
def directory_conf(_user,_config_path):
    configfile='''
<Directory %s>
                <Limit DELE WRITE>
                        AllowUser %s
                </Limit>
    </Directory>
</VirtualHost>
'''%(_config_path,_user)
    open(_config_file,"ab+").write(configfile)

if ( len(sys.argv) == 1 ):
    main()
    sys.exit()

if str(sys.argv[1]) == "help":
    main()
    
if str(sys.argv[1]) == "install":
    init(str(sys.argv[2]),str(sys.argv[3]),str(sys.argv[4]))
    downandinstall()
    main_conf()
    virtualhost_conf(str(sys.argv[2]),sys.argv[3])
    directory_conf(str(sys.argv[3]),str(sys.argv[4]))

if str(sys.argv[1]) == "conf":
    directory_conf(str(sys.argv[2]),str(sys.argv[3]))

转载请注明:LINUX服务器运维架构技术分享 » 用python 快速安装proftp 及简单配置

头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 头像
    我CA  这格式.
    initrdimg8年前 (2013-09-09)回复