linux 远程shell脚本执行,关于linux:使用配置文件的ssh命令在远程机器上执行shell脚本...

我想在远程机器中执行一个shell脚本,我使用下面的命令实现了这一点,

ssh user@remote_machine"bash -s" < /usr/test.sh

shell脚本在远程计算机中正确执行。现在,我在脚本中做了一些更改,以从配置文件中获取一些值。脚本包含以下行,

#!bin/bash

source /usr/property.config

echo"testName"

属性.config:

testName=xxx

testPwd=yyy

现在,如果我在远程计算机中运行shell脚本,我不会得到这样的文件错误,因为/usr/property.config在远程计算机中不可用。

如何将配置文件与要在远程计算机中执行的shell脚本一起传递?

使用scp?

@为什么在目标不是复制的时候使用scp?

SCP是使文件到达目标的最可靠的方法。还有其他选择,比如通过stdin(ssh user@remote_host 'cat >/path/to/config.file; /remote/command' < /local/config.file)发送,但scp是最可靠的方式。

唯一可以引用您创建并仍然运行脚本的config文件的方法是,您需要将配置文件放在所需的路径上,有两种方法可以做到这一点。

如果config几乎总是固定的,而您不需要更改它,那么在需要运行脚本的主机上本地设置config,然后在脚本中放置到config文件的绝对路径,并确保运行脚本的用户有权访问它。

如果每次运行该脚本时都需要发送配置文件,那么在发送和调用该脚本之前,可能只需发送该文件即可。

scp property.config user@remote_machine:/usr/property.config

ssh user@remote_machine"bash -s" < /usr/test.sh

编辑

根据请求,如果您想在一行中强制执行,可以这样做:

属性.CONFIG

testName=xxx

testPwd=yyy

试验室

#!bin/bash

#do not use this line source /usr/property.config

echo"$testName"

现在,您可以按照John的建议运行命令:

ssh user@remote_machine"bash -s" <

谢谢。。#2需要执行多个命令。是否可以合并为单个命令。、.?

你可以这样做,但是这是欺骗,如果你真的想把它们合并成一个命令,那么你就必须把config和bash脚本的输出放在一个文件中(如@john所提到的),如果你想,我可以把这个方法作为好吧,如果你想改变它的话。

谢谢阿南德。我按预期完成了任务,但我仍然很想得到更多的选择。请分享你的方法。

@Jugi我更新了答案来描述另一种技术。

谢谢。。最后一个问题,如何通过一个论点:(?

@jugi不需要传递任何参数,因为config文件(我假设它也是用bash脚本语法编写的)已经与bash脚本连接成一个独立的脚本,可以在远程机器上执行,而不需要任何依赖。

试试这个:

ssh user@remote_machine"bash -s" <

那么脚本不应该在内部源代码配置。

第二个选项,如果您只需要传递环境变量:

这里介绍了一些技术:https://superuser.com/questions/48783/how-can-i-pass-an-environment-variable-through-an-ssh-command

我最喜欢的可能是最简单的:

ssh user@remote_machine VAR1=val1 VAR2=val2 bash -s < /usr/test.sh

当然,这意味着您需要从本地配置文件构建环境变量分配,但希望这很简单。

谢谢。。配置文件包含更多的属性值集。它就像一个包装配置文件,定义配置文件中的所有值并基于该值执行脚本。把这些价值观当作论据来传递似乎有点困难

-bash:意外标记('. Getting this error while runnings sh user@remote_machine"bash-s"

^^修正了打字错误。

@Anishsane第二行应该是ssh user@remote_machine"bash -s" < 源代码未定义,不能这样使用,我假设是一个拼写错误。

它按我的预期工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值