首页 > 代码库 > linux shell执行远程计算机上的命令或者脚本(ssh)
linux shell执行远程计算机上的命令或者脚本(ssh)
大数据平台下经常建立设计多个节点的集群需要统一部署,这就设计到守护进程或者部署脚本在不同节点执行,如果能在master机器上,统一执行脚本,一次性启动整个集群的服务,感觉很nice。因为,分享如下内容:
前提条件:
配置ssh免密码登陆
对于简单的命令:
如果是在远端节点执行几个命令,则:
ssh user@remoteNode "cd /home ; ls"
注意点:
- 双引号,必须有。如果不加双引号,第二个ls命令在本地执行
- 分号,两个命令之间用分号隔开
对于远端执行脚本的方式:
有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现:
#!/bin/bashssh user@remoteNode > /dev/null 2>&1 << eeoocd /hometouch abcdefg.txtexiteeooecho done!
远程执行的内容在“<< eeoo ” 至“ eeoo”之间,在远程机器上的操作就位于其中,注意的点:
- << eeoo,ssh后直到遇到eeoo这样的内容结束,eeoo可以随便修改成其他形式。
- 重定向目的在于不显示远程的输出了
- 在结束前,加exit退出远程节点
本人示例代码:
#!/bin/bashsource /home/config.sh/home/start-XXX.py echo node local ok
#kill process no neededps x | grep ‘XXX‘ | grep -v grep | awk ‘{print $1}‘| xargs -l kill -9ssh root@XXX141 > /dev/null 2>&1 << eeooffsource /home/config.sh/home/start-xxx.pyexiteeooffecho xxx141 done!
ssh root@XXX142 > /dev/null 2>&1 << eeooffsource /home/config.sh/home/start-xxx.pyexiteeooffecho xxx142 done!
linux shell执行远程计算机上的命令或者脚本(ssh)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。