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. 《PHP扩展及核心》

    本文地址:http://www.cnblogs.com/aiweixiao/p/8202365.html 原文地址: 欢迎关注微信公众号  程序员的文娱情怀 一.主要内容: 1️⃣php扩展的概念和底 ...

  2. django自定义分页器

    一 django 的分页器 1 批量创建数据 批量导入数据: Booklist=[] for i in range(100): Booklist.append(Book(title="boo ...

  3. 【English】20190320

    valid有效的 [ˈvælɪd]  solitary独立的 [ˈsɑ:ləteri] data definition not valid unless solitary qualifying有资格的 ...

  4. RPC是什么?

    初学微服务,一点会问RPC是什么,通常网上的资料会说,是一种协议,然后说得很复杂,一堆概念,拜托,我只是想知道RPC是什么,而不是  怎么实现怎么做. RPC就是想实现函数调用模式的网络化,A服务(微 ...

  5. 部署Java和Tomcat

    Tomcat介绍 Tomcat服务器是一个免费的开放源代码的Web应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP网页的首选. Tomcat和Nginx.Apach ...

  6. esp8266 免费wifi强推广告神器(4) 发现当前WIFI下的用户数目,IP,MAC请求http信息 在用户请求跳转后跳转

    需求: 1 获取当前连接客户端的HTTP请求各种信息 方法 get  http 请求路径  例如  /index.html   /    /pic.jpg 请求版本   HTTP/1.0     HT ...

  7. HDU-problem-1002-人类史上最大最好的希望事件-矩阵快速幂

    Problem Description 作为CNCS的半壁江山,狗哥常常在宇宙中心邵阳眺望黄浦江,夜晚的星空总是迷人,有时候还能见到彗星滑落. 狗哥是幸运的,他在两秒钟内看到了十七颗彗星划过天际,作为 ...

  8. java高级---->Thread之ScheduledExecutorService的使用

    ScheduledExecutorService的主要作用就是可以将定时任务与线程池功能结合使用.今天我们来学习一下ScheduledExecutorService的用法.我们都太渺小了,那么容易便湮 ...

  9. 私有云方案——利用阿里云云解析实现DDNS

            各位都是程序员,工作中是不是遇到个类似情况.在家里研究的一些开源代码或写的一些demo或试验代码,在工作中正好需要参考一下,但是在家里的电脑上.           虽然这些都可以用云 ...

  10. Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

    Scaffolding Template Intro 我们知道在Asp.Net MVC中,如果你使用的EF的DBContext的话,你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器,然 ...