批量操作远程LINUX机器的方法

举报
wildwolf 发表于 2020/01/23 20:19:17 2020/01/23
【摘要】 批量操作远程LINUX机器的方法

实验室有几十台机器,日常运维、巡检要向远程机器检查状态、同步文件 一个个执行?或者在某软件打开多窗口同步窗口键入输入指令?

搞一个大集群做性能测试,几十台机器不同场景大不通测试例,一个个操作那般酸爽有谁能理解?

实际上运用批量命令行快速完成相关多机器的远程操作,提示手工运维的便利性。

假设有三台linux是管理机器192.168.1.2,192.168.1.3,192.168.1.4,其中192.168.1.2是管理机器,需要远程关闭另外两台

1、设置SSH,支持远程免密码访问(首次设置即可,后面不需要)

  1)生成密钥对

  如果管理机器在用户所在目录~/.ssh/id_rsa.pub已经有对应的则跳过本步骤。

ssh-keygen


  执行上述代码后会提示各个确认项,一路回车即可

  2)公钥加入到其他机器


hosts="192.168.1.3 192.168.1.4"
for host in ${hosts};do ssh-copy-id -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa.pub ${host};done

  遇到是否添加相关主机的,就填yes,遇到提示输入密码的输入对应服务器root的密码。这个就是一次性,每个机器总得有这么一次。

 2、日常运维直接执行相关命令即可

#设置需要执行的服务器列表
hosts="192.168.1.3 192.168.1.4"
#单行命令可以执行如下(以批量关机为例)
for host in ${hosts};do ssh ${host} 'shutdown -hP now & disown';done

#对于存在多行要执行的命令则改成如下
function dowork(){
 ssh root@$addr <<EOF
 #TODO 这里就是多行命令的地方,可以一次ssh登录执行多行命令,下面以每服务器打印时间为例
 date
EOF
}
for host in ${hosts};do dowork ; done

拷贝命令也是一样的,ssh换成scp即可实现 管理机<-->远程机  的双向拷贝


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200