Я пытаюсь написать скрипт для входа в одну из 30+ учетных записей на одном FTP-сайте, который я использую для работы.
Поведение, которое я хотел бы видеть:
$ ftp ftp.someplace.com
connected blah blah
220 blah blah ready...
Name (something): username
Password: <enter password>
couple lines saying successful login
ftp> <manually enter commands such as ls, cd, get, put, etc>
Я пробовал это в Python с ftplib, используя FTP.connect () /. Login (), но ничего, что я нашел в ftplib, не освобождает элемент управления и не делает сеанс ftp интерактивным.
Следующим моим шагом было попробовать curl:
curl ftp://user:password@ftp.someplace.com
Это выполняется и завершается с кодом возврата 0.
Наконец, я попробовал ftp из CLI в методе, который я бы вызвал из скрипта:
ftp ftp.someplace.com <<END_SCRIPT
> quote USER username
> quote PASS password
> END_SCRIPT
Это выполняется и завершается с кодом возврата 0.
Есть ли способ написать скрипт для этого?Я бы предпочел это в python, но я в порядке с вызовом подпроцесса bash.На данный момент я смотрю на какую-то сложную запись .netrc, но чувствую, что иду по кроличьей норе.Спасибо за вашу помощь!
************** РЕДАКТИРОВАННЫЙ ПОСЛЕ ОТВЕТА С РЕАЛИЗАЦИЕЙ ПИТОНА ****************
В Python работают следующие 2 строки:
process = subprocess.Popen("lftp -e ls -u {0},{1} ftp.someplace.com".format(username,password), shell=True)
output, error = process.communicate()