Загрузить файлы на сервер WS_FTP с машины GNU / Linux - PullRequest
0 голосов
/ 10 июля 2019

Я должен написать скрипт для загрузки файлов (и запуска его с помощью cron) на сервер WS_FTP с паролем от машины linux, и я ничего не могу установить. Решение должно быть стандартным.

Учетная запись на сервере WS_FTP относится к третьей части. Чтобы использовать scp или sftp без пароля, я должен установить ключ хоста SSH. Мне нужно программное обеспечение WS_FTP, которое работает только в системах Windows. И вообще я ничего не могу установить. https://docs.ipswitch.com/WS_FTP_Server2018/Help/Server/index.htm

На машине Linux нет ни filezilla, ни winscp, ни ожидаемого, ни lftp.

Я пробую сценарии оболочки:

USER='USER'
PASSWD='password'
sftp ${USER}@${HOST} << END_SCRIPT
quote PASS ${PASSWD}
put file_to_upload.txt
quit
END_SCRIPT
USER='USER'
PASSWD='PASSWORD'
sftp ${USER}@${HOST} <<< EOF
${PASSWD} <<< EOF
put file_to_upload.txt
quit
EOF

Я пробую скрипты Python:

import ftplib

host = 'FTP HOST'
usr = 'USER'
pwd = 'PASSWORD'
filename = 'file_to_upload' 
session = ftplib.FTP_TLS(host = host, user = usr, passwd = pwd)
file = open(filename,'rb')
session.storbinary(('STOR ' + filename), file)
file.close()
session.quit()
import subprocess

host = 'FTP HOST'
usr = 'USER'
pwd = 'PASSWORD'
subprocess.call(('sftp' + ' ' usr + '@' + host), shell = True)
subprocess.call(['password'])
output = process.communicate()
import sys
import os
import io

host = 'FTP HOST'
usr = 'USER'
pwd = 'PASSWORD'
oldstdout = sys.stdout
newstdout = io.StringIO()
sys.stdout = newstdout
os.system(('sftp' + ' ' usr + '@' + host))
os.system(pwd)
import commands

host = 'FTP HOST'
usr = 'USER'
pwd = 'PASSWORD'
commands.getoutput(('sftp' + ' ' usr + '@' + host))
commands.getoutput(pwd)

Ни одна из этих альтернатив не работает.

Как я могу отправить пароль с помощью стандартных доступных инструментов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...