我有一个Logstash集群(8台机器),每天早上我用来解析大量数据。我想自动化我的过程的启动步骤。为此,我有一个master用于向我的集群上的所有机器发送命令。但这是我的问题:我想从主人那里做所有事情,因为我必须远程执行脚本,这个脚本需要一个参数(一个日期),我不知道如何通过ssh传递这个参数+' bash -s' < my_script.sh命令
ssh -i something.pem user@ip 'bash -s' < start_logstash.sh $1
start_logstash.sh脚本需要$ 1参数才能工作,显然前一个命令不起作用...这个ssh命令包含在for循环中,该循环在我指定的每台机器上执行命令。
编辑:我发现了一种“快速赢得”#34;对于我的问题。我在初始脚本(而不是start_logstash.sh)中使用此命令:sed -i -r "s/([0-9]){8}/$1/g" start_logstash.sh
这在我的脚本中设置了date
变量,其中$1
显然是我传递给principal.sh
的参数。但我总是在寻找一种更直观的方式来直接使用ssh