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. Extjs 解决grid分页bug问题

    //从后端获取数据加载到grid中var mainStore = new HeJsonStore({ url:'xxx', autoLoad:true, pageSize:20 }) //此方法最好放 ...

  2. QQ的孤独

    接触网络到现在,已是好多年前的事了.初识网络犹如初恋般,充满了新鲜和好奇,于是,从聊天室到QQ,MSN,邮箱,再去BBS.然后有了博客^^^^^^ 那时的网络于我是那般充满诱惑,整天穿梭其中,乐此不彼 ...

  3. Analyzing 'enq: HW - contention' Wait Event (Doc ID 740075.1)

    Analyzing 'enq: HW - contention' Wait Event (Doc ID 740075.1) In this Document   Symptoms   Cause   ...

  4. Spring Cloud:多环境配置、eureka 安全认证、容器宿主机IP注册

    记录一下搭建 Spring Cloud 过程中踩过的一些坑,测试的东西断断续续已经弄了好多了,一直没有时间整理搭建过程,时间啊~时间~ Spring 版本 Spring Boot:2.0.6.RELE ...

  5. ansible 与 Jinja2的结合

    1.文件架构 [root@master template]# tree . ├── jinj2_test.yml ├── meta ├── tasks ├── templates │   └── te ...

  6. Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)

    前面从开发效率比较了 Laravel 和 Spring Boot两个框架,见:Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率) ,这一篇打算比较一下人工成本. 本文说的人 ...

  7. linux测速工具 speedtest-cli

    安装speedtest-cli: wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/ ...

  8. 深入剖析Redis系列:Redis数据结构与全局命令概述

    前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. ...

  9. python的设计原则及设计模式

    python的设计原则及设计模式 七大设计原则 单一职责原则 [SINGLE RESPONSIBILITY PRINCIPLE] 一个类负责一项职责. 里氏替换原则 [LISKOV SUBSTITUT ...

  10. IntentService+BroadcastReceiver 实现定时任务

    效果图: AlramIntentService package com.example.admin.water; import android.app.AlarmManager;import andr ...