Linux

时间:2016-02-19 18:09:34

标签: linux shell

想知道是否可以编写这样的shell脚本,如果可能的话,我可以参考任何参考/示例实现?感谢。

  • 步骤1,将本地盒子上的本地文件scp到远程盒子ABC,可能需要 输入密码或者我们可以将密码硬编码到脚本中吗?
  • 步骤2,远程执行ABC框上的脚本,并利用该文件 在步骤1中上传
  • 步骤3,步骤2的输出(打开 console / stdout)被重定向到本地框。

我试过了:

scp ~/Downloads/data/1.dat root@host:/root/data /root/exercise/test /root/data/1.dat

2 个答案:

答案 0 :(得分:1)

您可以使用ssh执行命令,例如:

$ ssh user@host ls -la

将作为host连接到主机user,并在成功授权后执行ls -la命令,在本地显示输出。命令完成后,连接将被关闭。

答案 1 :(得分:1)

我知道您要将文件复制到远程计算机,使用该文件作为参数运行命令,并在本地计算机上获取输出。显然,您需要远程计算机上的test程序。

你的尝试将你带到了一半。你可以这样做:

scp ~/Downloads/data/1.dat root@host:/root/data
ssh root@host '/root/exercise/test /root/data/1.dat'

第一个命令复制文件,第二个命令在远程计算机上运行命令。根据{{​​1}}命令,您可以将新的输出文件返回到本地计算机:

test

或者,如果命令写入标准输出,则可以通过将scp root@host:/root/results/outputfile . 附加到ssh命令然后将其重新定向到本地计算机,将输出重定向到远程计算机上的文件。