歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

shell腳本實現智能化查看功能

首先,在這裡我寫的腳本的功能沒有一一寫出來,有興趣的朋友可以自已完成,好久沒有寫shell腳本了,今天寫這個就當是復習下,最近一直使用python,不過對比之下,本人不才,總結以下:

1  shell只能對系統層面使用,而ptyhon任何情況下都可以使用

2  shell沒有python語言強大,shell是依賴對命令,而python是模塊的強大

3  管理系統建議使用shell,對於運維開發必須要使用python

4  shell使用簡單,容易上手,相對python而言,python模塊豐富

5  建議系統管理員必須要學會shell,然後再學習python,這樣學習python會快很多

以下是shell腳本(很簡單,大牛請繞道):

[root@localhost ~]# cat systeminfo.sh
#!/bin/bash
while true
do
echo "###############################"
echo "#      輸入下面的選項        #"                   
echo "#      cpu(查看CPU            #"                   
echo "#      memory(查看內存)      #"                   
echo "#      process(系統進程數)    #"                   
echo "#      disk(查看硬盤使用)    #"                   
echo "#      apache(查看apache連接) #"                   
echo "#      tcp(查看連接前十的IP)  #"                   
echo "#      mysql(查看mysql連接數) #"                   
echo "#      exit(退出)            #"                   
echo "###############################"
#####################################
echo "請輸入你想要查看的選項:"
read input
#####################################
function cpu(){
      top -n 1
    }
function memory(){
      free -m
    }
function process(){
      ps -A|wc -l
    }
function disk(){
      df -lh
    }
function apache(){
      netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
    }
function tcp(){
      netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n10
    }
function mysql(){
      netstat -anl|grep "3306"|wc -l
    }
function exit(){
      exit 0
    }
######################################
case $input in
    cpu)    cpu
    ;;
    memory)  memory
    ;;
    process) process
    ;;
    disk)    sidk
    ;;
    apache)  apache
    ;;
    tcp)    tcp
    ;;
    mysql)  mysql
    ;;
    exit)    exit
    ;;
    *)      echo "請輸入正常選項"
    ;;
esac
######################################
done

講解,使用while死循環來實現功能的選擇, function來定義函數,有些童鞋可能說直接在判斷語句裡面寫不是更快,這裡建議編程呢,按功能來區分,這樣你修改會很方便,而且讓下一個系統管理員或者是運維人員接手的話,容易理解,最後使用判斷語句來選擇.

題外話

現在很多企業都很少掛出來招系統管理員啦,直接就是運維工程師,系統工程師和運維工程師的區,以下是個人觀點:

系統管理員:工作在系統層面,例如安裝下系統,桌面的維護,配置下環境,安裝服務,然後上線.

運維工程師:感覺就是啥都要懂,系統、網絡、編程,系統層面要安裝、優化、高可用,這些跟系統管理員沒有多大的區別,那麼區別在哪裡,大家應該經常會看到招聘運維工程師的時候,最重要一條,熟悉或者精通shll|perl|python|php,對於現在的來說shell基本是沒有難度的,還有在小公司裡面運維工程師還要"兼職"數據庫管理員(DB SA),偶爾還是需要開發下運維工具。

建議

不管是系統管理員還是運維工程師,必須學習shell+3P(其中一門),相信以後高就肯定有好處。

相關閱讀:Shell腳本簡單總結及編寫腳本中的小技巧 http://www.linuxidc.com/Linux/2013-05/84691.htm

Copyright © Linux教程網 All Rights Reserved