从本地机器的shell脚本执行远程机器上的shell脚本

问题描述:

如何在远程机器(坐在本地机器上)中执行shell脚本,以及一些我想从本地机器传递的参数。从本地机器的shell脚本执行远程机器上的shell脚本

我试过ssh $remote_machine bash < script_for_remote_machine.sh $SRC_PATH $TGT_PATH $FILE_DT $bigsql_schema这个选项,其中$SRC_PATH$TGT_PATH是远程机器上的一些目录。但我在日志中得到错误像下面

+ ssh remote_machine bash /remote_dir1 /remotedir2 20151016 AUDIT 
/remote_dir1: /remotedir2: is a directory 
+ RETURN_CODE=126 
+ '[' 126 -eq 0 ']' 
+0

是什么(远程)脚本试图用它的第一个参数做让在远程机器的参数值? –

+0

查看这两个脚本的代码将帮助我们调试错误消息。 – skrrgwasme

+0

'ssh remote_machine bash -c“/ remote_dir1/remotedir2 20151016 AUDIT”'(假设你的'/ remote_dir1'是你要执行的脚本的名称 - 脚本的有趣名称) –

问题是由复制所有文件在远程计算机并在远程机器就像下面执行先解决:

scp audit_executable_commands.sh [email protected]$mgmt_node:/home/$bigsql_user 
 
scp audit_record_loading_00.parm [email protected]$mgmt_node:/home/$bigsql_user 
 
ssh $mgmt_node bash < audit_executable_commands.sh

其中audit_executable_commands.sh是我的情况下的远程脚本。现在我也想传递参数,我通过参数文件解决了这个问题。我也复制参数文件audit_record_loading_00.parm在远程计算机上,然后在执行像. $cur_dir/audit_record_loading_00.parm线从audit_executable_commands.sh