lftp, использующий входной файл для ввода команд, не работает

#lftp #korn

Вопрос:

Я пытаюсь перейти с kermit на lftp. Старый скрипт принимает команды из другого скрипта для размещения файлов в/из. Я все еще хочу взять этот входной файл, но у меня возникли проблемы с тем, чтобы заставить его считывать команды из входного файла.

старый скрипт utils с использованием kermit:

 /appl/bin/kermit $M_SCRIPT_TMP_FILE | sed -e '/^$/d' -e 's/^/         /' >> ${LOGFILE:-/home/mcleary/k_test/michele/logs/default.log} 2>amp;1
 

Где файл kermit версии $M_SCRIPT_TMP_FILE содержит содержимое каждого сценария, выполняющего ftp (ЖК-строка вниз) :

 ftp open MMMMSITE /USER:useruser /PASSWORD:pwpw
LOG TRANSACTIONS /app/tmp/m_Ftp_trans.tmp
  lcd /home/mcleary/k_test/michele/
  cd trans/
  ascii
  put test3.txt
  exit
 

Сценарий lftp, использующий входной файл, выглядит следующим образом:

  /usr/bin/lftp -f $M_SCRIPT_TMP_FILE | sed -e '/^$/d' -e 's/^/         /' >> ${LOGFILE:-/home/mcleary/k_test/michele/logs/default.log} 2>amp;1
 

Для версии lftp входной файл выглядит следующим образом:

 open ftp://useruser:pwpw://MMMMSITE
LOG TRANSACTIONS /app/tmp/m_Ftp_trans.tmp
  lcd /home/mcleary/k_test/michele/
  pwd
  cd trans/
  ls
  put test4.txt
  bye
 

Вывод/сообщение об ошибке для lftp выглядит следующим образом:

 open: ftp: Name or service not known
cd: Not connected
ls: Not connected
put: Not connected
Exit Status - m_Ftp2: 0
m_cmd from ckcmd: m_exit
m_log_only from ckcmd:
 

Есть идеи, почему lftp не распознает входную строку ftp?

ОБНОВЛЕНИЕ: Я знаю, что lftp работает из командной строки, как это, но мне нужно предоставить входной файл:

 lftp -u  useruser,pwpw ftp://MMMMCO <<EOF
> lcd /home/mcleary/k_test/michele/
> cd transfer
> put test.txt
> bye
> EOF
 

UPDATE2: Я попробовал новый скрипт utils с использованием lftp, как это:

 open -u useruser,pwpw ftp://MMMMSITE
 

Это выходное сообщение:

 cd: Login failed: 530 User cannot log in.
ls: Login failed: 530 User cannot log in.
put: Login failed: 530 User cannot log in.
Exit Status - m_Ftp2: 0
m_cmd from ckcmd: m_exit
m_log_only from ckcmd:
 

Ответ №1:

Я заставил его работать.

filename.txt:

 open ftp://MMMMSITE -u useruser,'pwpw'
  lcd /home/mcleary/k_test/michele/
  pwd
  cd trans/
  ls
  put test5.txt
  bye
 

Затем, чтобы использовать этот файл:

 lftp -f filename.txt