# -*- coding:utf8 -*- #!/usr/bin/env python #coding:utf-8 from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler,ThrottledDTPHandler from pyftpdlib.servers import FTPServer from pyftpdlib.log import LogFormatter import logging #记录日志,默认情况下日志仅输出到屏幕(终端) logger = logging.getLogger() logger.setLevel(logging.INFO) ch = logging.StreamHandler() fh = logging.FileHandler(filename='myftpserver.log') ch.setFormatter(LogFormatter()) fh.setFormatter(LogFormatter()) logger.addHandler(ch) #将日志输出至屏幕 logger.addHandler(fh) #将日志输出至文件 # 实例化虚拟用户,这是FTP验证首要条件 authorizer = DummyAuthorizer() # 添加用户权限和路径,括号内的参数是(用户名, 密码, 用户目录, 权限),可以为不同的用户添加不同的目录和权限 # 测报灯ftp路径 authorizer.add_user("ftpuser", "123456", "ftp_file/ykm_cbd", perm="elradfmw") # 依科曼测试ftp路径 authorizer.add_user("ykm_user", "123456", "ftp_file/ykm_cbd", perm="elradfmw") # 孢子仪ftp路径 authorizer.add_user("ftpbzyuser", "123456", "ftp_file/bzy_photo", perm="elradfmw") # 监控定时拍照ftp路径 authorizer.add_user("jkuser", "123456", "ftp_file/jk_photo", perm="elradfmw") # 性诱设备拍照ftp路径 authorizer.add_user("sexuser", "yf_123456", "ftp_file/sex_photo", perm="elradfmw") # 糖醋测报拍照ftp路径 authorizer.add_user("tccbuser", "yf123456", "ftp_file/tccb_photo", perm="elradfmw") # # 测试程序 # authorizer.add_user("sssuser", "yf_123456", "ftp_file/ssssex_photo", perm="elradfmw") # 升级文件路径 authorizer.add_user("updateuser", "123456", "/data/yfwlw/update", perm="elradfmw") # authorizer.add_user("updateuser", "123456", "/home/web/yfwlw/update", perm="elradfmw") #这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码, # 添加匿名用户 只需要路径 # authorizer.add_anonymous("d:/") # 初始化ftp句柄 handler = FTPHandler handler.authorizer = authorizer #添加被动端口范围 handler.passive_ports = range(2000, 2333) # 下载上传速度设置 dtp_handler = ThrottledDTPHandler dtp_handler.read_limit = 500 * 1024 #300kb/s dtp_handler.write_limit = 500 * 1024 #300kb/s # 开启服务器 # 监听ip 和 端口 server = FTPServer(("0.0.0.0", 2121), handler) # 大服务器内网地址:172.16.220.3 # server = FTPServer(("172.16.220.3", 21), handler) # 小服务器内网地址:172.24.159.211 # server = FTPServer(("172.24.159.211", 21), handler) # server = FTPServer(("127.0.0.1", 21), handler) # 最大连接数 server.max_cons = 500 server.max_cons_per_ip = 15 # 开始服务,自带日志打印信息 server.serve_forever()