亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

概述

linux Shell是一個(gè)很難的知識(shí)板塊。雖然大家都認(rèn)真學(xué),基本的語(yǔ)法很都掌握,但有需求時(shí),很難直接上手編程,要么寫了很久,要么寫不好!對(duì)于初學(xué)者而言,因?yàn)闆]有實(shí)戰(zhàn)經(jīng)驗(yàn),寫不出來(lái)Shell腳本很正常,如果工作了幾年的運(yùn)維還是寫不出來(lái),那就是沒主動(dòng)找需求,缺乏練習(xí),缺乏經(jīng)驗(yàn)。


方法要點(diǎn)

簡(jiǎn)單介紹一下編寫shell腳本的時(shí)候的經(jīng)驗(yàn)和方法。

1.理清思路:在我們想實(shí)現(xiàn)一個(gè)功能需要寫腳本的時(shí)候是切忌不要想到就寫,避免需要什么功能就先寫個(gè)什么命令再去完善,這種寫法常常會(huì)出現(xiàn)在結(jié)構(gòu)上很難調(diào)整的問題。在我們開始寫腳本之前一定要事先理清楚要怎么去實(shí)現(xiàn)這個(gè)功能,包括用什么命令和命令的先后順序。

2.全局觀:當(dāng)我們理清腳本的思路之后,我們這個(gè)時(shí)候也不能馬上就開始寫,這個(gè)時(shí)候我們需要在腦海中思考每一個(gè)步驟中可能出現(xiàn)的情況,當(dāng)出現(xiàn)各種情況后如何應(yīng)對(duì)。在shell腳本中有可能我們要實(shí)現(xiàn)一個(gè)看似簡(jiǎn)單的功能會(huì)需要有多個(gè)條件判斷,因?yàn)槌霈F(xiàn)在我們當(dāng)前系統(tǒng)上的情況只是在眾多情況中的一種,我們要實(shí)現(xiàn)讓腳本在任何機(jī)器上都能正常運(yùn)行就必須有“全局觀”。通俗講就是一個(gè)排除bug的過程。

3.心細(xì)如絲:正如大家感慨的一樣,shell腳本有非常多的引號(hào)括號(hào)空格,每一種意義不一樣,多個(gè)空格少個(gè)空格意義又不一樣,寫個(gè)幾十行的shell腳本能一次性寫完就無(wú)錯(cuò)運(yùn)行還是有一些難度的。我的在學(xué)習(xí)shell腳本一開始就強(qiáng)行給自己養(yǎng)成一個(gè)習(xí)慣,每寫完一行就檢查一次各種符號(hào)括號(hào),剛開始速度非常慢,但是寫得多了速度就越來(lái)越快而且出錯(cuò)率也越來(lái)越低,當(dāng)養(yǎng)成習(xí)慣以后再去寫那些符號(hào)就成了習(xí)慣沒有剛開始那么痛苦了。

4.好記性不如爛鍵盤:有一句不好聽的話雖然不好聽,但是能提醒到一些正在學(xué)習(xí)shell腳本的朋友說(shuō)出來(lái)也挺好。當(dāng)你在抱怨shell腳本如何難寫如何易出錯(cuò)的時(shí)候那么你總共寫過多少行shell?你敲過多少次鍵盤?

下面分享幾個(gè)shell腳本實(shí)例做練習(xí)。


1、檢測(cè)服務(wù)器是否開啟web服務(wù)(監(jiān)聽80),并判斷服務(wù)種類

#!/bin/bash
####################################################
#檢測(cè)服務(wù)器是否開啟web服務(wù)(監(jiān)聽80),并判斷服務(wù)種類
####################################################
#捕獲監(jiān)聽80端口的服務(wù)名稱
netstat -lntp|grep ":80"|awk -F '/' '{print $2}'|sort|uniq > /tmp/80.log
n=`wc -l /tmp/80.log|awk '{print $1}'`
s1=`cat /tmp/80.log`
#判斷服務(wù)種類函數(shù)
judge_server()
{
case $1 in
 httpd)
 echo "this server is Apache"
	;;
 Nginx)
	echo "this server is nginx"
	;;
 Tomcat)
	echo "this server is tomcat"
	;;
 *)
	echo "this server is other"
	;;
esac
}
if [ $n -eq 0 ]
 then
	echo "no web server!"
 exit 
fi
if [ $n -eq 1 ]
 then
	judge_server $s1
 else
	echo "there are $n web servers"
	for web in `cat /tmp/80.log`
	judge_server $web
fi
詳解Linux Shell腳本編寫技巧,附實(shí)例說(shuō)明

 


2、檢測(cè)MySQL服務(wù)是否正常,判斷是主庫(kù)還是從庫(kù),如是從庫(kù)判斷主從服務(wù)是否正常

#!/bin/bash
##################################################################
#檢測(cè)MySQL服務(wù)是否正常,判斷是主庫(kù)還是從庫(kù),如是從庫(kù)判斷主從服務(wù)是否正常
##################################################################
mysqlcmd="mysql -uroot -p123456"
#判斷MySQL服務(wù)是否正常(正確執(zhí)行MySQL命令)
$mysqlcmd -e "show processlist"
if [ $? -gt 0 ]
 then
 echo "this mysql is wrong."
 else
 		#如果是從庫(kù)則有返回值
 $mysqlcmd -e "show slave statusG" > /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=`grep 'Slave_SQL_Running:' /tmp/sql.log`|awk -F ':' '{print $2}'|sed 's/ //g'`
 if [ $y1 == "yes" ] && [ $y2 == "yes" ]
 then
 echo "the slave is ok"
 else
 echo "the slave is wrong" 
 fi
 fi
fi
詳解Linux Shell腳本編寫技巧,附實(shí)例說(shuō)明

 


3、計(jì)算100以內(nèi)所有能被3整除的正整數(shù)的和

#!/bin/bash
#############################################
#計(jì)算100以內(nèi)所有能被3整除的正整數(shù)的和
############################################
sum=0
for i in {1..100}
do
 #求余數(shù)
 n=$[$i%3]
 if [ $n -eq 0 ]
 then
	 sum=$[$sum+$i]
 fi
done
echo "sum:$sum"
詳解Linux Shell腳本編寫技巧,附實(shí)例說(shuō)明

 


4、統(tǒng)計(jì)內(nèi)存使用

#!/bin/bash
#########################################
#計(jì)算一下linux系統(tǒng)所有進(jìn)程占用內(nèi)存大小的和
#########################################
count=0
# 這個(gè)循環(huán)會(huì)遍歷出每個(gè)進(jìn)程占用的內(nèi)存大小
for i in `ps aux |awk '{print $6}' |grep -v 'RSS'`
do
 # 將遍歷出來(lái)的數(shù)字進(jìn)行累加
 count=$[$count+$i]
done
 
# 就得到所有進(jìn)程占用內(nèi)存大小的和了
echo "$count/kb"
詳解Linux Shell腳本編寫技巧,附實(shí)例說(shuō)明

分享到:
標(biāo)簽:Linux Shell
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定