點擊右邊

百家樂娛樂詳解Linux Shell劇本編寫技能,附實例申明

Linux Shell是一個很難的學問板塊。固然人人都當真學,根本的語法很都把握,但有需求時,很難間接上手編程,要末寫了好久,要末寫欠好!關于初學者而言,由于沒有實戰履歷,寫不進去Shell劇本很正常,若是事情了幾年的運維仍是寫不進去,那便是沒自動找需求,缺少實習,缺少履歷。

要領要點
簡略先容一下編寫shell劇本的時辰的履歷以及要領。

  • 理清思緒:在咱們想完成一個功效必要寫劇本的時辰是切忌不要想到就寫,幸免必要甚么功效就先寫個甚么下令再往完美,這類寫法經常會浮現在布局上很難調整的成績。在咱們最先寫劇本之前肯定要事前理清晰要怎么往完成這個功效,包含用甚么下令以及下令的前后次序。
  • 全局觀:當咱們理清劇本的思緒以后,咱們這個時辰也不克不及立地就最先寫,這個時辰咱們必要在腦海中思索每一個步調中可能浮現的環境,當浮現種種環境后若何應答。在shell劇本中有可能咱們要完成一個望似簡略的功效會必要有多個前提判定,由于浮現在咱們當前體系上的環境只是在浩繁環境中的一種,咱們要完成讓劇本在任何機械上都能正常運轉就必需有“全局觀”。通俗講便是一個清除bug的進程。
  • 心細如絲:正如人人慨嘆的同樣,shell劇本有特別很是多的引號括號空格,每一種意義紛歧樣,多個空格少個空格意義又紛歧樣,寫個幾十行的shell劇本能一次性寫完就無錯運轉仍是有一些難度的。我的在進修shell劇本一最先就強行給本人養成一個風俗,每寫完一行就反省一次種種符號括號,剛最先速率特別很是慢,然則寫得多了速率就愈來愈快并且失足率也愈來愈低,當養成風俗之后再往寫那些符號就成了風俗沒有剛最先那末痛楚了。
  • 好忘性不如爛鍵盤:有一句欠好聽的話固然欠好聽,然則能提示到一些正在進修shell劇本的同伙說進去也挺好。當你在埋怨shell劇本若何難寫若何易失足的時辰那末你統共寫過量少行shell?你敲過量少次鍵盤?

上面分享幾個shell劇本實例做實習。
1. 檢測服務器是否開啟web服務(監聽80),并判定服務品種

  1. #!/bin/bash 
  2. #################################################### 
  3. #檢測服務器是否開啟web服務(監聽80),并判定服務品種 
  4. #################################################### 
  5. #拿獲監聽80端口的服務稱號 
  6. netstat -lntp|grep ":80"|awk -F ‘/’ ‘{print $2}’|sort|uniq > /tmp/80.log 
  7. n=`wc -l /tmp/80.log|awk ‘{print $1}’` 
  8. s1=`cat /tmp/80.log` 
  9. #判定服務品種函數 改善偏財運
  10. judge_server() 
  11. case $1 in 
  12.  httpd) 
  13.  echo "this server is apache" 
  14. 線上麻將賭博    ;; 
  15.  nginx) 
  16.     echo "this server is nginx" 
  17.     ;; 
  18.  tomcat) 
  19.     echo "this server is tomcat" 
  20.     ;; 
  21.  *) 
  22.     echo "this server is other" 
  23.     ;; 
  24. esac 
  25. if [ $n -eq 0 ] 
  26.  then 
  27.     echo "no web server!" 
  28.  exit  
  29. fi 
  30. if [ $n -eq 1 ] 
  31.  then 
  32.     judge_server $s1 
  33.  else 
  34.     echo "there are $n web servers" 
  35.     for web in `cat /tmp/80.log` 
  36.     judge_server $web 
  37. fi 

2. 檢測MySQL服務是否正常,判定是主庫仍是從庫,如是從庫判定主從服務是否正常

  1. #!/bin/bash 
  2. ################################################################## 
  3. #檢測M六合彩結果號碼ySQL服務是否正常,判定是主庫仍是從庫,如是從庫判定主從服務是否正常 
  4. ################################################################## 
  5. mysqlcmd="mysql -uroot -p123456" 
  6. #判定MySQL服務是否正常(精確履行MySQL下令) 
  7. $mysqlcmd -e "show processlist" 
  8. if [ $? -gt 0 ] 
  9.  then 
  10.  echo "this mysql is wrong." 
  11.  else 
  12.    &nbsp偏財運意思;    #若是是從庫則有返歸值 
  13.  $mysqlcmd -e "show slave status\G" &地下539中4碼多少錢gt; /tmp/sql.log 
  14.  n=`wc -l /tmp/sql.log|awk ‘{print $1}’` 
  15.  if [ $n -gt 0 ] 
  16.  then 
  17.  y1=`grep ‘Slave_IO_Running:’ /tmp/sql.log`|awk -F ‘:’ ‘{print $2}’|sed ‘s/ //g’` 
  18.  y2=`grep ‘Slave_SQL_Running:’ /tmp/sql.log`|awk -F ‘:’ ‘{print $2}’|sed ‘s/ //g’` 
  19.  if [ $y1 == "yes" ] && [ $y2 == "yes" ] 
  20.  then 
  21.  echo "the slave is ok" 
  22.  else 
  23.  echo "the slave is wrong"  
  24.  fi 
  25.  fi 
  26. fi 

妞妞一直輸
【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私家概念盡非權勢巨子,不代表本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱:,咱們將實時予以處置。