【发布时间】:2021-09-20 13:52:33
【问题描述】:
我正在尝试从 kermit 转换为 lftp。旧脚本从另一个脚本获取文件的 to/from 位置的命令。我仍想获取该输入文件,但我无法让它从输入文件中读取命令。
使用 kermit 的旧 utils 脚本:
/appl/bin/kermit $M_SCRIPT_TMP_FILE | sed -e '/^$/d' -e 's/^/ /' >> ${LOGFILE:-/home/mcleary/k_test/michele/logs/default.log} 2>&1
kermit 版本 $M_SCRIPT_TMP_FILE 包含执行 ftp 的每个脚本的内容(lcd 行向下):
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>&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:我尝试了使用 lftp 的新 utils 脚本,如下所示:
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:
【问题讨论】: