- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
Linux指令是由很多顶级程序员共同设计的,使用Linux指令解决问题的过程,就好像在体验一款优秀
的产品。每次通过查资料使用Linux指令解决问题后,都会让我感到收获满满。在这个过程中,我不仅
学会了一条指令,还从中体会到了软件设计的:彼此独立,又互成一体。这就像每个Linux指令一
样,专注、高效。回想起来,在我第一次看到管道、第一次使用awk、第一次使用sort,都曾有过这种
感受。
通过前面的学习,相信你已经掌握了一些基础指令的使用方法,今天我们继续一个更复杂的问题
长到具备书写一个拥有几十行、甚至上百行的bash的能力时,就意味着你具备了解决复杂问题的
能力。而最终的目标,是提升你对指令的熟练程度,锻炼工程能力。
本,我将带你朝着这个目标努力,通过把简单的指令组合起来,分层组织成最终的多个文件,
解决一个复杂的工程问题:在成百上千的集群中安装一个Java环境。接下来,请你带着这个目标,开
启今天的学习。
第一步:学习用的集群
第一步我们先一个学习用的集群。这里简化一下模型。我在自己的电脑上装一个ubuntu桌面版的
虚拟机,然后再装两个ubuntu服务器版的虚拟机。
相对于桌面版,服务器版对资源的消耗会少很多。我将教学材料中桌面版的ubuntu命名为u1,两个用
来被管理的服务器版ubuntu叫作v1和v2。
用桌面版的是:我喜欢ubuntu漂亮的开源字体,这样会让我在给你准备素材的时候拥有一个好心
情。如果你对此感,可以搜索ubuntumono,尝试把这个字体安装到自己的文本编辑器中。不过
我还是觉得在ubuntu中敲代码更有感觉。
注意,我在这里只用了3台服务器,但是接下来我们要写的是可以在很多台服务器之间复用的。
第二步:循环遍历IP列表
你可以想象一个局域网中有很多服务器需要管理,它们彼此之间网络互通,我们通过一台主服务器对它
们进行操作,即通过u1操作v1和v2。
在主服务器上我们一个ip地址的列表,保存成一个文件,如下图所示:
目前iplist中只有两项,但是如果我们有足够的机器,可以在里面放成百上千项。接下来,请你思考
shell如何遍历这些ip?
你可以先尝试实现一个最简单的程序,从文件iplist中读出这些ip并尝试用for循环遍历这些ip,
具体程序如下:
#!/usr/bin/bash
readarray-tipsiplist
do
echo$ip
done
首行的#!叫作Shebang。Linux的程序加载器会分析Shebang的内容,决定执行的程序。这里我
们希望用bash来执行这因为我们用到的readarray指令是bash4.0后才增加的能力。
readarray指令将iplist文件中的每一行到变量ips中。ips是一个数组,可以用echo
${ips[@]}打印其中全部的内容:@代表取数组中的全部内容;$符号是一个求值符号。不带$的
话,ips[@]会被认为是一个字符串,而不是表达式。
for循环遍历数组中的每个ip地址,echo把地址打印到屏幕上。
如果用shell执行上面的程序会报错,因为readarray是bash4.0后支持的能力,因此我们用
chomd为foreach.sh增加执行权限,然后直接利用shebang的能力用bash执行,如下图所示:
第三步:创建集群管理账户
为了方便集群管理,通常使用统一的用户名管理集群。这个账号在所有的集群中都需要保持命名一致。
比如这个集群账号的名字就叫作lagou。
接下来我们探索一下如何创建这个账户lagou,如下图所示:
上面我们创建了lagou账号,然后把lagou加入sudo分组。这样lagou就有了sudo成为root的能
力,如下图所示:
接下来,我们设置lagou用户的初始化shell是bash,如下图所示:
这个时候如果使用命令sulagou,可以切换到lagou账号,但是你会发现命令行没有了颜色。因此我
们可以将原来用户下面的.bashrc文件拷贝到/home/lagou
文档评论(0)