shell脚本关闭计算机集群

4 篇文章 0 订阅

背景:由于用4台机器建立了一个Hadoop集群,每次开机还好,直接按4台,但是每次关机就比较麻烦(不想直接长按电源鍵),因为目前只有一台机器有显示器,另外三台都没有显示器,所以,每次关闭其他三台时,都需要在终端下用ssh连接到host,然后再输入关机命令,现在三台机器,稍微还好一些,如果机器再多几台,那就太麻烦了,因此,专门写了一个脚本来自动关机。

#!/usr/bin/env bash

ssh -t node1 "echo \"hadoop\" | sudo -S shutdown -h now"
ssh -t node2 "echo \"hadoop\" | sudo -S shutdown -h now"
ssh -t node3 "echo \"hadoop\" | sudo -S shutdown -h now"

关机脚本代码如上,node1,node2,node3表示三台机器,ssh后面跟了一个-t,表示以一个伪终端的方式连接远程机器,并执行后续的命令。man ssh 时,-t的解释如下:

-t      Force pseudo-terminal allocation.  This can be used to execute
             arbitrary screen-based programs on a remote machine, which can be
             very useful, e.g. when implementing menu services.  Multiple -t
             options force tty allocation, even if ssh has no local tty.

因为在sudo的时候,需要输入用户密码,所以,在sudo的时候,带了一个配置项-S,通过man sudo ,可以发现:

S, --stdin
                 Write the prompt to the standard error and read the password
                 from the standard input instead of using the terminal device.
                 The password must be followed by a newline character.

也就是说,加了这个参数后,可以从标准输入读取密码,因此,在sudo之前输出密码即可,从而,实现在sudo的时候,不需要手动输入密码。以上hadoop就是密码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值