Передача между серверами FTP / FXP через SSL / TLS - PullRequest
0 голосов
/ 04 декабря 2018

Я хочу создать соединение между двумя (FXPable) FTP-серверами и перенести папку с подпапками и файлами в ней.

В качестве примера я хочу скопировать (FXP - site-to-site) целое /www/xy.com с сервера 1 на /www/xy.com на сервере 2, но я понятия не имею, как это сделать.

Я нашел интересный модуль на PyPI под названием "ftpext", но я не правильно его понимаю.Этот модуль включает в себя поддержку FXP и PRET.И что я хочу использовать.Так что, возможно, кто-то может мне помочь.Мне не нужен этот модуль, если вы можете сделать это по-другому.

Вот ссылка:

Мой скрипт должен уметь:

usage: %s SERVER1 PORT1 USER1 PASS1 PATH_TO_FOLDER1 SERVER2 PORT2 USER2 PASS2 PATH_TO_DESTINATION_FOLDER

Это вывод моеготекущий скрипт:

CONNECTiON ESTABLiSHED OVER SSL/TLS TO SERVER 1: *.*.*.*

switched to secure data connection

Changed directory on Server1 successfully to: www

CONNECTiON ESTABLiSHED OVER SSL/TLS TO SERVER 2: *.*.*.*

switched to secure data connection

Changed directory on Server2 successfully to: www

А вот мой скрипт (он очень быстрый и грязный без обработки ошибок):

from ftplib import FTP_TLS
import sys

# SECURE CONNECT TO FTP1 OVER TLS/SSL

ftps1 = FTP_TLS
ftps1 = FTP_TLS.port = sys.argv[2]
ftps1 = FTP_TLS('%s' % sys.argv[1])
ftps1.login(sys.argv[3], sys.argv[4])
print("CONNECTiON ESTABLiSHED OVER SSL/TLS TO SERVER 1: %s" % sys.argv[1])
print()
ftps1.prot_p()
print("switched to secure data connection")
print()
ftps1.cwd(sys.argv[5])
print("Changed directory on Server1 successfully to: %s" % sys.argv[5])
print()

# SECURE CONNECT TO FTP2 OVER TLS/SSL

ftps2 = FTP_TLS
ftps2 = FTP_TLS.port = sys.argv[7]
ftps2 = FTP_TLS('%s' % sys.argv[6])
ftps2.login(sys.argv[8], sys.argv[9])
print("CONNECTiON ESTABLiSHED OVER SSL/TLS TO SERVER 2: %s" % sys.argv[6])
print()
ftps2.prot_p()
print("switched to secure data connection")
print()
ftps2.cwd(sys.argv[10])
print("Changed directory on Server2 successfully to: %s" % sys.argv[10])

1 Ответ

0 голосов
/ 05 декабря 2018

Я полагаю, вы ищете FTPExt.fxp_to или FTPExt.secure_fxp_to методы:

ftp1 = FTPExt(host1, port1, user1, password1, True)
ftp2 = FTPExt(host2, port2, user2, password2, True)

ftp1.fxp_to(path1, ftp2, path2)
...