bash – 在循环中使用ssh执行脚本
发布时间:2020-12-16 01:52:32 所属栏目:安全 来源:网络整理
导读:我正在尝试编写一个脚本,我有一个循环来登录到多个远程机器并在每台机器内执行一个脚本.这是一个例子: for ((j=1; j 2; j++)); do mchname="n"$j ssh -T $mchname 'ENDSSH' ./run_script input output ENDSSHdone 每当我尝试执行上面的脚本时,我得到: “警
我正在尝试编写一个脚本,我有一个循环来登录到多个远程机器并在每台机器内执行一个脚本.这是一个例子:
for ((j=1; j < 2; j++)); do mchname="n"$j ssh -T $mchname <<'ENDSSH' ./run_script < input > output & ENDSSH done 每当我尝试执行上面的脚本时,我得到: 我是ssh的新手,所以我确信我犯了一个愚蠢的错误.谁能建议我一个解决方案? 解决方法
您的bash脚本中存在问题. heredoc结束标记(脚本中的ENDSSH)不能缩进.
试试这个: ssh -T $mchname <<'ENDSSH' ./run_script < input > output & ENDSSH # ^ no indentation for that line 编辑: 此外,您可以通过将其作为参数传递给ssh来运行远程系统上的命令,而不是将其作为标准输入提供.该命令将由用户的远程shell执行: ssh -T $mchname './run_script < input > output &' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读