西大 发表于 2018-8-23 07:19:12

shell脚本实现智能化查看功能

  首先,在这里我写的脚本的功能没有一一写出来,有兴趣的朋友可以自已完成,好久没有写shell脚本了,今天写这个就当是复习下,最近一直使用python,不过对比之下,本人不才,总结以下:
  1shell只能对系统层面使用,而ptyhon任何情况下都可以使用
  2shell没有python语言强大,shell是依赖对命令,而python是模块的强大
  3管理系统建议使用shell,对于运维开发必须要使用python
  4shell使用简单,容易上手,相对python而言,python模块丰富
  5建议系统管理员必须要学会shell,然后再学习python,这样学习python会快很多
  以下是shell脚本(很简单,大牛请绕道):
# 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}'
  
}
  
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(其中一门),相信以后高就肯定有好处


页: [1]
查看完整版本: shell脚本实现智能化查看功能