pyftpsync的ftp同步器不工作

pyftpsync的ftp同步器不工作,ftp,synchronization,pyftpsync,Ftp,Synchronization,Pyftpsync,我需要将我的服务器(openshift RHC服务器)与一个ftp服务器同步。 所以我用了这个代码: from ftpsync.synchronizers import DownloadSynchronizer, UploadSynchronizer,BiDirSynchronizer from ftpsync.targets import FsTarget#,UploadSynchronizer from ftpsync.ftp_target import FtpTarget import o

我需要将我的服务器(openshift RHC服务器)与一个ftp服务器同步。 所以我用了这个代码:

from ftpsync.synchronizers import DownloadSynchronizer, UploadSynchronizer,BiDirSynchronizer
from ftpsync.targets import FsTarget#,UploadSynchronizer
from ftpsync.ftp_target import FtpTarget
import os
local_folder = os.environ['HOME']

local = FsTarget("/tmp")
user ="u707539103"
passwd = "ss12346"
remote = FtpTarget("/home/u707539103/public_html", "93.188.160.113", 21,user, passwd)
opts = {"force": False, "delete_unmatched": True, "verbose": 3, "dry_run" : False}
s = UploadSynchronizer(local, remote, opts)
s.run()
但我得到了一个错误:

File "/var/lib/openshift/55c50b0d89f5cfa8bd0000e8/app-root/runtime/srv/python/lib/python2.7/site-packages/pyftpsync-1.0.3-py2.7.egg/ftpsync/ftp_target.py", line 99, in open
    self.ftp.cwd(self.root_dir)
  File "/var/lib/openshift/55c50b0d89f5cfa8bd0000e8/app-root/runtime/srv/python/lib/python2.7/ftplib.py", line 553, in cwd
    return self.voidcmd(cmd)
  File "/var/lib/openshift/55c50b0d89f5cfa8bd0000e8/app-root/runtime/srv/python/lib/python2.7/ftplib.py", line 249, in voidcmd
    return self.voidresp()
  File "/var/lib/openshift/55c50b0d89f5cfa8bd0000e8/app-root/runtime/srv/python/lib/python2.7/ftplib.py", line 224, in voidresp
    resp = self.getresp()
  File "/var/lib/openshift/55c50b0d89f5cfa8bd0000e8/app-root/runtime/srv/python/lib/python2.7/ftplib.py", line 219, in getresp
    raise error_perm, resp
ftplib.error_perm:  530 You aren't logged in

那么问题出在哪里?

不确定您的环境是什么,但是/etc/services中缺少或缺少“Servname不支持ai_socktype”的典型根本原因。应该有以下几行: ftp数据20/udp#文件传输[默认数据] ftp数据20/tcp#文件传输[默认数据] ftp 21/udp#文件传输[控制] ftp 21/tcp#文件传输[控制]


而且在使用默认端口号时不必包含端口号…

不确定您的环境是什么,但是/etc/services中缺少或缺少“Servname不支持ai_socktype”的典型根本原因。应该有以下几行: ftp数据20/udp#文件传输[默认数据] ftp数据20/tcp#文件传输[默认数据] ftp 21/udp#文件传输[控制] ftp 21/tcp#文件传输[控制]


使用默认值时,不必包含端口号…

最后我找到了答案,其代码如下:

from ftpsync.synchronizers import DownloadSynchronizer, UploadSynchronizer,BiDirSynchronizer

from ftpsync.targets import FsTarget #, UploadSynchronizer, DownloadSynchronizer
from ftpsync.ftp_target import FtpTarget
import os

env_var = os.environ['OPENSHIFT_HOMEDIR']
#local = FsTarget(env_var+"/app-root/runtime/tmp/")
local = FsTarget('/tmp')
user ="u220290147"
passwd = "ss123456"
#ip='31.170.167.182';user='u364816941';# ss-22.4rog.in
#ip='31.170.167.90';user='u929884673';# iran-balabar.tk master@tb-simple.heliohost.org
ip='s.id.ai';user='u707539103';# s.id.ai soheil_paper@yahoo.om

#ip='tb-blog.4rog.in';user='u721167122';# tb-blog.4rog.in
#remote = FtpTarget("/home/"+user+"/public_html", "93.188.160.83", user, passwd)
remote = FtpTarget("/public_html", ip,21, user, passwd)
opts = {"force": False, "delete_unmatched": False, "verbose": 3, "execute": True, "dry_run" : False}
#opts = {"force": True, "delete_unmatched": True, "verbose": 3, "execute": True, "dry_run" : False}
s = UploadSynchronizer(local, remote, opts)
#s = DownloadSynchronizer(local, remote, opts)
s.run()
stats = s.get_stats()
print(stats)

最后我找到了答案,其代码如下:

from ftpsync.synchronizers import DownloadSynchronizer, UploadSynchronizer,BiDirSynchronizer

from ftpsync.targets import FsTarget #, UploadSynchronizer, DownloadSynchronizer
from ftpsync.ftp_target import FtpTarget
import os

env_var = os.environ['OPENSHIFT_HOMEDIR']
#local = FsTarget(env_var+"/app-root/runtime/tmp/")
local = FsTarget('/tmp')
user ="u220290147"
passwd = "ss123456"
#ip='31.170.167.182';user='u364816941';# ss-22.4rog.in
#ip='31.170.167.90';user='u929884673';# iran-balabar.tk master@tb-simple.heliohost.org
ip='s.id.ai';user='u707539103';# s.id.ai soheil_paper@yahoo.om

#ip='tb-blog.4rog.in';user='u721167122';# tb-blog.4rog.in
#remote = FtpTarget("/home/"+user+"/public_html", "93.188.160.83", user, passwd)
remote = FtpTarget("/public_html", ip,21, user, passwd)
opts = {"force": False, "delete_unmatched": False, "verbose": 3, "execute": True, "dry_run" : False}
#opts = {"force": True, "delete_unmatched": True, "verbose": 3, "execute": True, "dry_run" : False}
s = UploadSynchronizer(local, remote, opts)
#s = DownloadSynchronizer(local, remote, opts)
s.run()
stats = s.get_stats()
print(stats)

ftp
?认真地2015年?
ftp
?认真地2015年?