2

plink用来在远程执行 shell 脚本MachineB。并且 shell 脚本在MachineA(Windows Box).

C:\PLINK>plink uname@MachineB -m test.sh 
Using keyboard-interactive authentication. 
Password: 
Using keyboard-interactive authentication. 
Your Kerberos password will expire in 73 days. 

text file(aa.txt)该 shell 脚本在 MachineB 上的 a 中生成输出,并将其存储在/export/home/uname/aa.txt

所以我的问题是 -有什么方法可以在aa.txt file脚本使用. 或者我们需要把所有这些东西放在 Windows 批处理文件中?MachineBMachineAssh

所以问题陈述是这样的-

  1. MachineB在from上执行 shell 脚本MachineA
  2. 然后等待 shell 脚本完成它的任务,在我的例子中,它会将输出写入一个文本文件。
  3. 在 shell 脚本完成所有任务后,意味着它完成了将所有内容写入 txt 文件,然后将该 txt 文件复制到MachineAfromMachineB

关于如何实现上述方案的任何建议将不胜感激?

更新:-

所以假设如果这是 test.sh shell 脚本文件中的内容,并且在脚本末尾添加 pscp 之后,那么它应该是这样的吗?

#!/bin/bash 
export HIVE_OPTS="$HIVE_OPTS -hiveconf mapred.job.queue.name=hdmi-technology" 
hive -S -e 'SELECT count(*) from testingtable2' > aa.txt 
pscp uname@MachineB:/export/home/uname/aa.txt c:\documents\foo.txt

所以我在上面的脚本中执行一个配置单元查询,其输出存储在aa.txt文件中,一旦查询完成并且输出存储在aa.txt文件中,它将转到fourth line of pscp将 aa.txt 文件传输到我的本地 Windows 机器里面的文件文件夹。我对吗?这将是整个过程吗?

如果上述过程据我了解是正确的,那么我可以简单地转到 windows cmd 提示符,然后像下面那样做,它会做完全相同的过程。正确的?

C:\PLINK>plink uname@MachineB -m test.sh 
Using keyboard-interactive authentication. 
Password: 
Using keyboard-interactive authentication. 
Your Kerberos password will expire in 73 days. 

再次更新:-

所以我需要创建一个bat文件,假设这是下面的文件,所以该文件中的test.bat内容应该是这样的-test.bat

plink uname@MachineB -m test.sh 
pscp  uname@MachineB:/export/home/uname/aa.txt c:\documents\foo.txt
4

2 回答 2

1

执行后可以使用scp下载文件。如果您在 Windows 机器上设置winsshdappend并在 test.sh 文件中设置复制命令:

scp /export/home/uname/aa.txt user@windowsmachine.com:/homedir

文件将在完成后传输。

同样,您可以在您的 windows 机器上使用pscp之类的 windows scp 客户端,您可以从 linux 机器上提取文件:

pscp uname@MachineB:/export/home/uname/aa.txt c:\documents\foo.txt

所以在windows机器上,有一个批处理脚本:

plink uname@MachineB -m test.sh 
pscp  uname@MachineB:/export/home/uname/aa.txt c:\documents\foo.txt
于 2012-07-27T03:40:10.000 回答
0

只是为了补充已经说过的内容,我正在运行非常相似的东西并使用以下格式(来自批处理脚本):

plink -ssh 用户@ -pw 密码 -m yourScript.sh

pscp -sftp -pw 密码 user@IP-Address:/path/to/remote/file C:\path\to\local\save\directory

第二个命令在一行上,但它可能不会像这里那样呈现。当然,用您的登录名替换 IP 地址、用户和密码 :-)

希望有帮助!

编辑 - 对不起,刚刚意识到这个确切的答案已经给出。赞!

于 2012-08-01T20:22:11.307 回答