起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > 大牛都是这样学linux脚本技术的

大牛都是这样学linux脚本技术的

时间:2019-08-12 17:48:28来源:编程网 作者:IT培训网 已有: 名学员访问该课程

前言:Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux脚本学习必经之路:Shell脚本实例分享

写shell脚本还是一样,思路第一,语法其次,下面分享几个脚本实例,大家主要是理解一下里面的思路,语法稍微注意一下。

什么是linux技术:

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1. 观察数字,输出包含前6个数字在内的16个数字

观察以下数字,看有什么规律:


  1. 10 31 53 77 105 141 

这里数字的规律在于两个数字的差值的差值是2的幂次方

那么怎么用shell脚本实现需求呢?


  1. #!/bin/bash 
  2. ############################################### 
  3. #10 31 53 77 105 141 
  4. #观察数字,输出包含前6个数字在内的16个数字 
  5. #数字的规律在于两个数字的差值的差值是2的幂次方 
  6. ############################################### 
  7. a=10 
  8. b=21 
  9. echo $a 
  10. for i in `seq 0 13` 
  11. do 
  12.  #2的$i次幂 
  13.     c=$[2**$i] 
  14.  a=$[$a+$b] 
  15.  b=$[$b+$c] 
  16.  echo $a 
  17. done 
  18. a=$[$a+$b] 
  19. echo $a 

大牛都是这样学linux脚本技术的_www.epx365.cn

输出结果:

大牛都是这样学linux脚本技术的_www.epx365.cn

2. 查看Linux系统中是否存在自定义用户,并统计自定义用户数量


  1. #!/bin/bash 
  2. ########################################################## 
  3. #查看Linux系统中是否存在自定义用户,并统计自定义用户数量 
  4. #截取/etc/passwd文件中第三段的数字,大于1000者即为自定义用户 
  5. ########################################################## 
  6. n=`awk -F ':' '$3>1000' /etc/passwd|wc -l` 
  7. if [ $n -gt 0 ] 
  8.  then 
  9.  echo "there are $n custom users" 
  10.  else 
  11.  echo "no custom user" 
  12. fi 

结果输出:

大牛都是这样学linux脚本技术的_www.epx365.cn

3. 监控磁盘分区以及inode使用率并告警


  1. #!/bin/bash 
  2. ################################################################ 
  3. #监控所有磁盘分区以及inode使用率,当某个分区容量或inode使用量大于85%时,发送邮件告警 
  4. ################################################################ 
  5. #将系统语言设置为英文,如果是中文则会产生bug 
  6. LANG=en 
  7. log=/tmp/`date +%F.log` 
  8. tag1=0 
  9. tag2=0 
  10. df -h >> $log 
  11. df -i >> $log 
  12. #遍历各个磁盘利用率的数值 
  13. for h in `df -h|grep -v 'Use'|awk -F ' +|%' '{print $5}'` 
  14. do 
  15.  if [ $h -gt 85 ] 
  16.  then  
  17.  $tag1=1 
  18.  fi 
  19. done 
  20. #遍历各个磁盘inode的数值 
  21. for i in `df -i|grep -v 'Use'|awk -F ' +|%' '{print $5}'` 
  22. do 
  23.  if [ $i -gt 85 ] 
  24.  then 
  25.  $tag2=1 
  26.  fi 
  27. done 
  28. #磁盘空间以及inode都没有问题,tag=0 
  29. if [ $tag1 -eq 0 ] && [ $tag2 -eq 0 ] 
  30.  then  
  31.  tag=0 
  32. fi 
  33. #磁盘空间有问题,inode没有问题,tag=1 
  34. if [ $tag1 -eq 1 ] && [ $tag2 -eq 0 ] 
  35.  then 
  36.  tag=1 
  37. fi 
  38. #磁盘空间没有问题,inode有问题,tag=2 
  39. if [ $tag1 -eq 0 ] && [ $tag2 -eq 1 ] 
  40.  then 
  41.  tag=2 
  42. fi 
  43. #磁盘空间以及inode都有问题,tag=3 
  44. if [ $tag1 -eq 1 ] && [ $tag2 -eq 1 ] 
  45.  then 
  46.  tag=3 
  47. fi 
  48. #根据不同的tag数值,最终输出不同的结果 
  49. case $tag in 
  50.  0) 
  51.  echo "no problem." 
  52.  ##mail.py 
  53.  ;; 
  54.  1) 
  55.  echo "disk space is not enough." 
  56.  ##mail.py  
  57.  ;; 
  58.  2) 
  59.  echo "disk inode is not enough." 
  60.  ##mail.py 
  61.  ;; 
  62.  3) 
  63.  echo "disk space and disk inode are not enough." 
  64.  ##mail.py 
  65.  ;; 
  66. esac 

大牛都是这样学linux脚本技术的_www.epx365.cn

大牛都是这样学linux脚本技术的_www.epx365.cn

输出结果:

大牛都是这样学linux脚本技术的_www.epx365.cn

4. 监测目标目录的文件生成情况

需求:用脚本每隔5分钟监测目标目录是否有新文件生成,若有新文件生成,则将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。

实现:


  1. #!/bin/bash 
  2. ################################################################## 
  3. #用脚本每隔5分钟监测目标目录是否有新文件生成,若有新文件生成,则将新文件 
  4. #列表输出到一个按年、月、日、时、分为名字的日志里 
  5. ################################################################## 
  6. a=`date -d "-5 min" +%Y-%m-%d-%H-%M` 
  7. logfile=/tmp/$a.log 
  8. basedir=/home 
  9. #查找修改时间少于5分钟的文件,并将列表记录在临时文件中 
  10. find $basedir/ -type f -mmin -5 > /tmp/test.txt 
  11. n=`cat /tmp/test.txt|wc -l` 
  12. if [ $n -gt 0 ] 
  13.  then  
  14.  mv /tmp/test.txt $logfile 
  15. fi 

大牛都是这样学linux脚本技术的_www.epx365.cn

大牛都是这样学linux脚本技术的_www.epx365.cn

5. 查看常用命令,并列出TOP10


  1. #!/bin/bash 
  2. #################################### 
  3. #对历史命令排序|查重|倒叙排列|取前10行 
  4. #################################### 
  5. sort /root/.bash_history|uniq -c|sort -nr|head 

大牛都是这样学linux脚本技术的_www.epx365.cn

输出:

大牛都是这样学linux脚本技术的_www.epx365.cn

文章出自:http://qh.itpxw.cn/peixun/software/201953750.html

文章标题:大牛都是这样学linux脚本技术的



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:IT培训网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容