【问题标题】:Feeding password and commands to remote ftp command using PuTTY使用 PuTTY 将密码和命令提供给远程 ftp 命令
【发布时间】:2016-07-08 21:12:23
【问题描述】:

我想自动化将文件从 Windows FTP 位置复制到我的 Windows 7 机器上的 Unix 机器的过程。

我已经设法搜索网络并成功地使用 SSH 和 PuTTY 连接到 Unix 机器。

PuTTY 的输入文件包含命令,但它在密码处停止,我找不到解决此问题的方法。

为此,我创建了一个批处理文件,因此我可以在我的 Windows 7 机器上安排一个 Windows 作业,每天开始将文件从 Windows FTP 服务器(不是我的其他 Windows 机器)复制到 Unix 机器。

批处理文件:

putty -ssh lxdsdsp0  -l "user_1" -pw "mypass" -m "D:\cmd.txt" -t

我的 cmd.txt

cd /x06/scratch-data/ 
ftp domain\user_1@winapp67.sr.dv.com
mypass
/bin/bash

当我执行批处理文件时,它通过 SSH 登录到 Unix 框并键入命令,但当我将密码作为 PuTTY cmd.txt 文件中的输入文件时停止。

请帮忙。

Using username "user_1".

Welcome to SuSE Linux Enterprise Server 9 (x86_64)

Connected to domain\user_1@winapp67.sr.dv.com.
220 Microsoft FTP Service
331 Password required for domain\user_1.
Password:
530 User domain\user_1 cannot log in.
ftp: Login failed.
ftp>

【问题讨论】:

  • 为什么不直接将文件从 windows 服务器复制到 unix 机器的过程自动化呢?为什么需要使用第三台计算机在其他两台机器之间自动执行某些操作?

标签: batch-file ssh ftp putty


【解决方案1】:

cmd.txt 的内容由远程 shell 逐行执行。内容没有被使用,就像您在键盘上键入了这些命令一样。

因此,shell 执行 ftp 并等待它退出,然后继续执行 mypass 行(最终尝试执行它并失败,因为它不是可识别的 shell 命令)。

您可以做的是使用Plink 而不是 PuTTY。 PuTTY 包中用于自动化的工具中的 Plink(PuTTY 不是)。它是一个控制台应用程序。因此,您可以将其输入从您的cmd.txt 重定向。然后,内容将被使用,就像您在键盘上键入这些命令一样。

plink.exe -ssh lxdsdsp0 -l "user_1" -pw "mypass" -t < D:\cmd.txt

另见How to pass user input automatically using plink.exe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2020-11-26
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2014-07-19
    • 2014-07-10
    • 1970-01-01
    相关资源
    最近更新 更多