centos7 能以ipv6方式启动,启动只需修改配置如下

如需同时启动到ipv4跟ipv6,需拷贝配置文件,一份配置中只监听ipv4,一份配置中只监听ipv6

centos6中无法启动到ipv6,错误如下,20,21端口也没被其它程序占用:

以ipv4的方式启动vsftpd,在获取文件信息,下载文件,只能以主动模式运行,而ipv6可以以被动模式运行

python中ftplib进行ftp的代码(下载文件,获取文件信息),设为主动模式i,在window能正常运行,但是放到Linux下就跑不起来,会报“500 Illegal PORT command”,如果使用ftp工具,目标服务器是能进行文件上传下载的,具体需要看下ftplib的说明文档

写了一个工具类,有点乱

#encoding=utf8
import os, re, ftplib
from config import MRedis, MCoding class MFTP():
def __init__(self, host, username=None, password=None, del_remote=False, pasv=False):
self.host = host
self.username = username
self.password = password
self.del_remote = del_remote
self.ftp = ftplib.FTP(host)
self.ftp.set_pasv(pasv)
self.ftp.login() if self.username==None else self.ftp.login(username, password) def download_file(self, remote_url, local_dir):#centos
try:
file_name = remote_url.split('/').pop()
local_file = (local_dir + '/' + remote_url).decode('utf8', "ignore").encode(MCoding, "ignore")
remote_url = remote_url.replace(file_name, '')
self.ftp.cwd('~/' + remote_url)
buffsize =
fp = open(local_file, 'wb')
self.ftp.retrbinary('RETR %s' % file_name, fp.write, buffsize)
fp.close()
if self.del_remote:
print '删除文件:', remote_url, ':', file_name, '当前路径:', self.ftp.pwd()
self.ftp.delete(file_name)
except BaseException as e:
print '发生异常:', e def download_dir(self, remote_url, local_dir):#centos
try:
local_url = local_dir + '/' + remote_url
local_url = local_url.decode('utf8', "ignore").encode(MCoding, "ignore")
print '远程路径', remote_url
print '本地路径', local_url
self.ftp.cwd('~/' + remote_url) if not os.path.exists(local_url):
os.mkdir(local_url) dirs = []
self.ftp.dir('', '.', dirs.append)
for i in dirs:
f_name = i.split(' ').pop()
rusult = re.match('^dr.*', i)
if rusult:
print '文件夹下载:', remote_url
self.download_dir(remote_url + '/' + f_name, local_dir)
else:
print '文件下载:', remote_url, '/', i
self.download_file(remote_url + '/' + f_name, local_dir)
if self.del_remote:
print '删除文件夹:', remote_url
self.ftp.rmd(remote_url.split('/')[-])
except BaseException as e:
print '下载文件夹出错', e def getDirInfo(self, path):#获取目录下所有文件跟文件夹
self.ftp.cwd(path)
result = {'files': [], 'dirs': []}
dirs = []
self.ftp.dir('', '.', dirs.append)
for dir in dirs:
name = dir.split(' ').pop()
if re.match('^dr.*', dir):
result['dirs'].append(name)
else:
result['files'].append(name)
return result def upload_file(self, file_name, remote_path, local_path):
bufsize =
fp = open(local_path+'/'+file_name, 'rb')
self.ftp.storbinary('STOR ' + remote_path+'/'+file_name, fp, bufsize)
self.ftp.set_debuglevel() def close(self):
self.ftp.close() def down_dir_test(local_url):#下载测试
host = '***'
username = '***'
password = '***'
mftp = MFTP(host, username, password, True)
mftp.download_dir('', local_url) def del_dir(ftp, dirName):#删除文件夹
ftp.cwd(dirName) def down_all(local_url):#同步文件到本地
from config import dbsession
slaves = dbsession.execute('select ftp_host, ftp_user, ftp_pwd, centos from slave')
for slave in slaves:
print slave.ftp_host, slave.ftp_user, slave.ftp_pwd
MRedis.hset('ftp', slave.ftp_host, 'ftping')
mftp = MFTP(slave.ftp_host, slave.ftp_user, slave.ftp_pwd, pasv='centos7' in slave.centos)
try:
print '本地路径', local_url
mftp.download_dir('file', local_url)
except BaseException as e:
print 'error', e
finally:
MRedis.hset('ftp', slave.ftp_host, 'complete')
mftp.close() def upload_file(file_name, remote_path, local_path):#上传文件测试
host = '***'
# host = '***'
username = '***'
password = '***'
mftp = MFTP(host, username, password, True)
mftp.upload_file(file_name, remote_path, local_path)
mftp.close() def upload_file_all(file_name, remote_path, local_path):#同步爬虫文件到其他从机
from config import dbsession
slaves = dbsession.execute('select ftp_host, ftp_user, ftp_pwd, centos from slave')
for slave in slaves:
if 'centos6' in slave.centos: # centos6直接跳过
continue
mftp = MFTP(slave.ftp_host, slave.ftp_user, slave.ftp_pwd, pasv=True)
try:
mftp.upload_file(file_name, remote_path, local_path)
print "同步文件成功"
except BaseException as e:
print '同步文件失败'
print e
finally:
mftp.close() def del_file(file_name):
host = '***'
username = '***'
password = '***'
mftp = MFTP(host, username, password).ftp mftp.rmd('test_data')
mftp.cwd('test_data')
files = []
mftp.dir('', '.', files.append)
for f in files:
f = f.split(' ').pop()
try:
mftp.delete(f)
print '删除%s成功' %f
except:
print '删除%s失败' %f
mftp.cwd('..')
mftp.close() def getInfoTest():
host = '***'
username = '***'
password = '***'
mftp = MFTP(host, username, password, True)
print mftp.getDirInfo('~') if __name__ == '__main__':
local_url = 'E:/test_data'
# local_url = '/root/ftp_test'
down_all(local_url)
# down_dir_test(local_url)
# upload_file('1.txt', '', r'E:\test_data')
# upload_file('1.txt', '', r'E:\test_data')
# del_file('batj_yb.py')
# print 'end'
# getInfoTest()

vsftpd启动问题简记的更多相关文章

  1. 为 vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: pasv_enable

    每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现.. 为 vsftpd 启动 vsftpd:500 OOPS: bad bool val ...

  2. vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: guest_enable

    不然启动时会涌现毛病,举个例子 guest_enable=YES  后面出现空格,就会出现 为 vsftpd 启动 vsftpd:500 OOPS: bad bool value in config ...

  3. 为 vsftpd 启动 vsftpd:500 OOPS: SSL: cannot load RSA&nb

    博主在配置ftp服务器的时候 自己生成的CA,然后认证自己的私钥文件 一切配置都是没有问题的,然后重新启动服务器 service vsftpd restart    出现以下错误 为 vsftpd 启 ...

  4. vsftpd启动报错:vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable

    vsftpd启动报错:vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable  今天在调试centos vsftp的时 ...

  5. 一个可以让vsftpd启动系统用户登陆ftp的例子

    编辑 /etc/vsftpd.conf 如下: listen=YES anonymous_enable=NO local_enable=YES check_shell=NO write_enable= ...

  6. linux centos6.5 ftp网页vsftpd配置

    安装命令centos下 yum install vsftpd 出现“Complete!”时意味着安装完成.Linux中,系统对于大小写严格区分,比如abc和ABC是完全不相同的字符,要特别注意.配置V ...

  7. CentOS配置FTP(VSFTPD)

    一.vsftp安装篇 # 安装vsftpd yum -y install vsftpd # 启动 service vsftpd start # 开启启动 chkconfig vsftpd on 二.v ...

  8. Ubuntu下安装FTP服务及使用(VSFTPD详细设置)(二)

    vsftpd 作为一个主打安全的FTP服务器,有很多的选项设置.下面介绍了vsftpd的配置文件列表,而所有的配置都是基于vsftpd.conf这个配置文件 的.本文将提供完整的vsftpd.conf ...

  9. Linux vsftpd 无法登录 cannot change directory:xxx priv_sock_get_cmd 问题

    配置vsftpd时本地用户无法切换不能登录问题.问题如下: C:\Users\kai>ftp ftp> open 172.24.144.10 连接到 172.24.144.10. (vsF ...

随机推荐

  1. SQLServer之创建INSTEAD OF INSERT,UPDATE,DELETE触发器

    INSTEAD OF触发器工作原理 INSTEAD OF表示并不执行其所定义的操作INSERT,UPDATE ,DELETE,而仅是执行触发器本身,即当对表进行INSERT.UPDATE 或 DELE ...

  2. SQLServer数据事务日志操作

    日志备份 (log backup) 包括以前日志备份中未备份的所有日志记录的事务日志备份. (完整恢复模式) 使用SSMS数据库管理工具备份事务日志 1.连接数据库,选择数据库->右键点击-&g ...

  3. HybridStart发布v1.0测试版

    HybridStart是一款多webview模式的混合应用前端开发框架,本来只是作者自用的一套混合应用开发模板,为了进一步提高混合应用开发效率,近期着重在框架高通用性和易用性方面做了较大改进,比如将U ...

  4. vue 首页问题

    (现在其实处于不知道自己不知道状态,前端其实很多东东,不信弄个微博试试,还有那些概念的to thi tha) 1.压缩 一般 vue-cli已经压缩了 比如js 的,一般4M多压缩到 1M,还有css ...

  5. SQL NOW() 函数

    NOW() 函数 NOW 函数返回当前的日期和时间. 提示:如果您在使用 Sql Server 数据库,请使用 getdate() 函数来获得当前的日期时间. SQL NOW() 语法 SELECT ...

  6. (十三)Batch Processing

    In addition to being able to index, update, and delete individual documents, Elasticsearch also prov ...

  7. Linux内核入门到放弃-页缓存和块缓存-《深入Linux内核架构》笔记

    内核为块设备提供了两种通用的缓存方案. 页缓存(page cache) 块缓存(buffer cache) 页缓存的结构 在页缓存中搜索一页所花费的时间必须最小化,以确保缓存失效的代价尽可能低廉,因为 ...

  8. mysql 提高一 动态sql 传变量

    1.需求 DELIMITER $$ SECOND STARTS '2018-09-07 08:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN ) DEFAU ...

  9. Linux内存管理 (11)page引用计数

    专题:Linux内存管理专题 关键词:struct page._count._mapcount.PG_locked/PG_referenced/PG_active/PG_dirty等. Linux的内 ...

  10. 8个Python高效数据分析的技巧

    一行代码定义List 下面是使用For循环创建列表和用一行代码创建列表的对比. x = [1,2,3,4] out = [] for item in x: out.append(item**2) pr ...