python 实现 FTPServer 服务
来源:互联网 发布:windows lts 编辑:程序博客网 时间:2024/06/14 10:15
ftp/FtpServer.py
#!/usr/bin/env python#coding:utf-8import sysfrom pyftpdlib.authorizers import DummyAuthorizerfrom pyftpdlib.handlers import FTPHandler, ThrottledDTPHandlerfrom pyftpdlib.servers import FTPServersys.path.append('/***/svn/python/service/ftp/conf')import settingsimport loggingdef get_user(userfile): #定义一个用户列表 user_list = [] with open(userfile) as f: for line in f: if not line.startswith('#') and line: if len(line.split(",")) == 4: user_list.append(line.split(",")) else: print "user.conf配置错误" return user_listdef ftp_server(): #实例化虚拟用户,这是FTP验证首要条件 authorizer = DummyAuthorizer() #添加用户权限和路径,括号内的参数是(用户名, 密码, 用户目录, 权限) #authorizer.add_user('user', '12345', '/***/tempfile/market', perm='elradfmw') user_list = get_user('/***/svn/python/service/ftp/conf/user.py') for user in user_list: name, passwd, permit, homedir = user try: authorizer.add_user(name, passwd, homedir.replace("\r\n",""), perm=permit) except Exception as e: print e #添加匿名用户 只需要路径 if settings.enable_anonymous == 'on': authorizer.add_anonymous(settings.anonymous_path) #下载上传速度设置 dtp_handler = ThrottledDTPHandler dtp_handler.read_limit = settings.max_download dtp_handler.write_limit = settings.max_upload #初始化ftp句柄 handler = FTPHandler handler.authorizer = authorizer #日志记录 if settings.enable_logging == 'on': logging.basicConfig(filename=settings.loging_name, level=logging.INFO) #欢迎信息 handler.banner = settings.welcome_msg #添加被动端口范围 handler.passive_ports = range(settings.passive_ports[0], settings.passive_ports[1]) #监听ip 和 端口 server = FTPServer((settings.ip, settings.port), handler) #最大连接数 server.max_cons = settings.max_cons server.max_cons_per_ip = settings.max_per_ip #开始服务 print '开始服务' server.serve_forever()if __name__ == "__main__": ftp_server()
ftp/conf/settings.py
#!/usr/bin/env python#coding:utf-8ip = '***'port = '2121'#上传速度 300kb/smax_upload = 300 * 1024#下载速度 300kb/smax_download = 300 * 1024#最大连接数max_cons = 10#最多IP数max_per_ip = 5#被动端口范围,注意被动端口数量要比最大IP数多,否则可能出现无法连接的情况passive_ports = (2000, 2200)#是否开启匿名访问 on|offenable_anonymous = 'off'#匿名用户目录anonymous_path = '/***/tempfile/market'#是否开启日志 on|offenable_logging = 'off'#日志文件loging_name = 'pyftp.log'#欢迎信息welcome_msg = 'Welcome to our ftp'
ftp/conf/user.py
#!/usr/bin/env python#coding:utf-8#用户名,密码,权限,目录tcc,tcc,elradfmwM,/***/tempfile/marketmark_ftp,dept_mark,elradfmwM,/***/tempfile/marketgoupengdong,dept_mark,elradfmwM,/***/tempfile/marketwebsite_dev,website_dev,elradfmwM,/***/tempfile/market/web
后台运行:
chmod -R 777 /***/tempfile/marketnohup python /***/svn/python/service/ftp/FtpServer.py &
more:http://www.jb51.net/article/110901.htm
阅读全文
0 0
- python 实现 FTPServer 服务
- SocketAPI 实现FTPServer文件下载
- Apache FTPServer本地部署FTP服务
- Python实现小型FTP服务
- Java使用Apache FtpServer实现嵌入式FTP服务器
- Java使用Apache FtpServer实现嵌入式FTP服务器
- 搭建apache ftpserver无法启动服务出现DefaultSsl.configure()报错信息
- Config ftpserver
- XE5 FTPSERVER
- FTPserver 配置
- android :FTPServer
- ftpserver(win)
- Apache FtpServer
- ftpServer安装
- 实现Python HTTP服务方法大总结
- python之多线程socket服务实现
- dbus-python服务实现及introspection功能
- Python学习笔记 --- 实现日志管理服务
- InstallShield 程序打包发布 具体操作步骤
- MQ整理—搭建错误集锦
- Swift闭包的使用
- Windows10配置CTex+Texmaker
- VirtualBox虚拟机中安装CentOS 7(二)映射SSH端口
- python 实现 FTPServer 服务
- iOS 企业版账号的使用
- POJ 2046 Gap(bfs+状态压缩+map)
- web 前端
- 连接数据库登录 -详细介绍基本的JSP结构- 不使用任何框架
- Java中抽象类与接口的区别
- 13.属性选择器、emment快捷键
- 日期:在原有的时间上加一秒/分钟等
- 定时器任务 TimerTask