как синхронизировать два ftp сервера с помощью python - PullRequest
3 голосов
/ 06 сентября 2011

У меня есть два FTP-сервера a и b, мне нужно скопировать файлы с сервера на сервер b.Загрузка файла из a и загрузка в b слишком сложна, я хочу написать скрипт на python, чтобы сделать это на моем рабочем столе, просто введите команду ниже, она выполнит эту работу.

 python syncftp.py a.com(source server) folder(folder name in source server) 
        b. com(destination server) folder(destination folder name) 

, но послекакой-то гугл, до сих пор не могу найти хороший способ синхронизировать два ftp сервера, как в dropbox.Есть ли другой способ сделать это?спасибо.

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

Для начала у вас есть http://www.csync.org/, который является своего рода rsync (но так как rsync работает только с SSH, а не с FTP), но для передачи по HTTP / FTP.

Если вам не нравится эта опция, всегда есть "lftp" или "curlftpfs", у stackoverflow есть дочерний сайт, который предоставляет ваш ответ:

https://serverfault.com/questions/24622/how-to-use-rsync-over-ftp

если ЭТО вам ничего не дает, тогда у вас всегда есть ftplib в python: http://docs.python.org/library/ftplib.html

from ftplib import FTP
ftpretr = FTP('get.ftp.com')   # connect to host, default port
ftpretr.login()               # user anonymous, passwd anonymous@
ftpretr.retrbinary('RETR README', open('README', 'wb').write)
ftpretr.quit()
ftpsend = FTP('send-to.ftp.com','login','password')
ftpsend.storbinary('STOR todo.txt', open('README','rb'))
ftpsend.quit()

Теперь я не могу помочь вам больше, чем это, не сделав все для вас, и я предполагаю, что вы хотите учиться? используйте sys.argv [] для извлечения файлов ввода / вывода, а также, возможно, для source-host и desition.

Наслаждайтесь! :)

0 голосов
/ 06 сентября 2011

Для меня это звучит как работа для rsync .Как следует из названия, он может рекурсивно синхронизировать файлы и каталоги (также со сжатием и прочим).

...