bash的作用,八十寿辰祝寿词

  

  

概述

  

  

   Linux Shell是一个比较难的知识板块。虽然每个人都努力学习,并且很好地了解基本语法,但是当有需要时,很难直接编程。不是写了很久就是写的很烂!对于新手来说,因为没有实战经验,写不出Shell脚本很正常。如果他们在运维工作几年后还是写不出来,就是不主动找需求,缺乏实践和经验。   

  

  

方法要点

  

  

  简单介绍一下写shell脚本时的经验和方法。   

  

  1.理清思路:当我们想实现一个功能,需要写脚本的时候,要避免想都没想就写。如果我们需要任何功能,我们应该先编写一个命令,然后完善它。这种写法往往会导致结构上难以调整的问题。在我们开始写脚本之前,一定要提前搞清楚这个功能怎么实现,包括用什么命令,命令的顺序。   

  

  2.整体观点:我们理清了剧本的思路之后,这个时候还不能马上动笔。这时候就需要在脑海中思考每一步可能出现的情况,以及各种情况出现时该如何应对。在shell脚本中,有可能我们需要有多个条件判断才能实现一个看似简单的功能,因为我们当前系统上出现的情况只是众多情况中的一种,我们必须有一个“全局观”才能让脚本在任何机器上正常运行。通俗点说就是一个排查bug的过程。   

  

  3.小心如丝:大家都感觉到了,shell脚本中有大量的引号和括号,每个意思都不一样,很多空格和少数空格意思都不一样。写一个几十行的shell脚本,可以一次写完,运行不出错,还是有点难。我在学习shell脚本的时候,一开始就强迫自己形成一个习惯,每写完一行就检查各种符号括号。刚开始速度很慢,后来写的多了,速度越来越快,出错率越来越低。当我养成了习惯,再写那些符号就成了习惯。没有一开始那么痛苦。   

  

  4.好的内存不如坏的键盘:虽然有个不好的说法,但是提醒一些正在学习shell脚本的朋友说出来还是不错的。当你在抱怨shell脚本有多难写,有多容易出错的时候,你写过多少行shell?你敲了多少次键盘?   

  

  下面是一些用于实践的shell脚本示例。   

  

  

1、检测服务器是否开启web服务(监听80),并判断服务种类

  

  

   #!/bin/bash # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #并判断服务类型# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # WC-L/TMP/80 . log | awk ' { print $ 1 } ' ` S1=` cat/TMP/80 . log `# judge _ server(){ httpd中的case $ 1)echo '这个服务器是Apache ';nginx)echo‘这个服务器是nginx’;Tomcat)echo‘这个服务器是Tomcat’;*)echo‘此服务器是其他的’;esac}if $n -eq 0选择“无web服务器!”退出fiif $n -eq 1,然后judge_server $s1 elseecho '有$n个web服务器'用于' cat/tmp/80 . log ' judge _ server $ webfi 中的web   

  

  

2、检测MySQL服务是否正常,判断是主库还是从库,如是从库判断主从服务是否正常

  

  

   #!/bin/MySQL # # # # # # # # # # # # # #例如, 判断主从服务MySQL是否正常从库# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #-gt 0然后回显'这个MySQL是错误的。' else #如果是库中的,有返回值$ mysqlcmd-e ' show Slave status \ G '/tmp/SQL . log n=` WC-l/tmp/SQL . log | awk ' { print $ 1 } ' ` If $ n-gt 0 then y1=` grep ' Slave _ IO _ running : '/tmp/SQL . log `| awk-F ' : ' ' { print $ 2 } ' | sed ' s///G ' ` y2=` GRE   

  

  

3、计算100以内所有能被3整除的正整数的和

  

  

   #!/bin/bash # # # # # # # # # # # # # # # # # # # # # # # # #计算100以内所有可被3整除的正整数之和# # # # # #求余数n=$ $ I% 3 if $ n-eq 0则sum=$ $ sum $ I fidone echo ' sum 3360 $ sum '   

  

  4、统计内存使用   

  

  #!/bin/bash # # # # # # # # # # # # # # # # # # # # # # # # # # # #计算linux系统中所有进程的内存大小之和# # # # # # # # # # # # # # # # # #此循环将遍历` psaux | awk ' { print $ 6 } ' | grep-v ' RSS ' ` do #中I的每个进程所占用的内存大小。 将遍历的数目count=$ $ count $ idol #相加,得到所有进程占用的内存大小总和echo' $ count/KB' 。   

  

  后面会分享更多关于devops和DBA的内容,感兴趣的朋友可以关注一下!   

  

     

相关文章