我想自动执行从Windows FTP位置将文件从Windows 7机器复制到Unix机器的过程。
我已经设法搜索网络并成功使用SSH和PuTTY连接到Unix机箱。
PuTTY的输入文件包含命令,但它在密码处停止,我找不到解决此问题的方法。
为此,我创建了一个批处理文件,因此我可以在Windows 7计算机上安排Windows作业,以便每天从Windows FTP服务器(其他Windows机器不是我的机器)开始复制文件到Unix机器。 / p>
批处理文件:
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>
答案 0 :(得分:1)
cmd.txt
的内容由远程shell逐行执行。不使用内容,就像在键盘上键入这些命令一样。
所以shell执行ftp
并等待它退出,然后进入mypass
行(最终尝试执行它并失败,因为它不是一个可识别的shell命令)。 / p>
您可以做的是使用Plink而不是PuTTY。 Plink中的Plink是用于自动化的PuTTY包(PuTTY不是)。它是一个控制台应用程序。因此,您可以从cmd.txt
重定向其输入。然后将使用内容,就好像您在键盘上键入这些命令一样。
plink.exe -ssh lxdsdsp0 -l "user_1" -pw "mypass" -t < D:\cmd.txt