批量操作远程LINUX机器的方法
【摘要】 批量操作远程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)