| 
                        副标题[/!--empirenews.page--]
                         写shell脚本还是一样,思路第一,语法其次,下面分享几个脚本实例,大家主要是理解一下里面的思路,语法稍微注意一下。 
1. 观察数字,输出包含前6个数字在内的16个数字 
观察以下数字,看有什么规律: 
- 10 31 53 77 105 141 
 
  
这里数字的规律在于两个数字的差值的差值是2的幂次方 
那么怎么用shell脚本实现需求呢? 
- #!/bin/bash 
 - ############################################### 
 - #10 31 53 77 105 141 
 - #观察数字,输出包含前6个数字在内的16个数字 
 - #数字的规律在于两个数字的差值的差值是2的幂次方 
 - ############################################### 
 - a=10 
 - b=21 
 - echo $a 
 - for i in `seq 0 13` 
 - do 
 -  #2的$i次幂 
 -     c=$[2**$i] 
 -  a=$[$a+$b] 
 -  b=$[$b+$c] 
 -  echo $a 
 - done 
 - a=$[$a+$b] 
 - echo $a 
 
  
  
输出结果: 
  
2. 查看Linux系统中是否存在自定义用户,并统计自定义用户数量 
- #!/bin/bash 
 - ########################################################## 
 - #查看Linux系统中是否存在自定义用户,并统计自定义用户数量 
 - #截取/etc/passwd文件中第三段的数字,大于1000者即为自定义用户 
 - ########################################################## 
 - n=`awk -F ':' '$3>1000' /etc/passwd|wc -l` 
 - if [ $n -gt 0 ] 
 -  then 
 -  echo "there are $n custom users" 
 -  else 
 -  echo "no custom user" 
 - fi 
 
  
结果输出: 
  
3. 监控磁盘分区以及inode使用率并告警 
- #!/bin/bash 
 - ################################################################ 
 - #监控所有磁盘分区以及inode使用率,当某个分区容量或inode使用量大于85%时,发送邮件告警 
 - ################################################################ 
 - #将系统语言设置为英文,如果是中文则会产生bug 
 - LANG=en 
 - log=/tmp/`date +%F.log` 
 - tag1=0 
 - tag2=0 
 - df -h >> $log 
 - df -i >> $log 
 - #遍历各个磁盘利用率的数值 
 - for h in `df -h|grep -v 'Use'|awk -F ' +|%' '{print $5}'` 
 - do 
 -  if [ $h -gt 85 ] 
 -  then  
 -  $tag1=1 
 -  fi 
 - done 
 - #遍历各个磁盘inode的数值 
 - for i in `df -i|grep -v 'Use'|awk -F ' +|%' '{print $5}'` 
 - do 
 -  if [ $i -gt 85 ] 
 -  then 
 -  $tag2=1 
 -  fi 
 - done 
 - #磁盘空间以及inode都没有问题,tag=0 
 - if [ $tag1 -eq 0 ] && [ $tag2 -eq 0 ] 
 -  then  
 -  tag=0 
 - fi 
 - #磁盘空间有问题,inode没有问题,tag=1 
 - if [ $tag1 -eq 1 ] && [ $tag2 -eq 0 ] 
 -  then 
 -  tag=1 
 - fi 
 - #磁盘空间没有问题,inode有问题,tag=2 
 - if [ $tag1 -eq 0 ] && [ $tag2 -eq 1 ] 
 -  then 
 -  tag=2 
 - fi 
 - #磁盘空间以及inode都有问题,tag=3 
 - if [ $tag1 -eq 1 ] && [ $tag2 -eq 1 ] 
 -  then 
 -  tag=3 
 - fi 
 - #根据不同的tag数值,最终输出不同的结果 
 - case $tag in 
 -  0) 
 -  echo "no problem." 
 -  ##mail.py 
 -  ;; 
 -  1) 
 -  echo "disk space is not enough." 
 -  ##mail.py  
 -  ;; 
 -  2) 
 -  echo "disk inode is not enough." 
 -  ##mail.py 
 -  ;; 
 -  3) 
 -  echo "disk space and disk inode are not enough." 
 -  ##mail.py 
 -  ;; 
 - esac 
 
  
  
  
输出结果: 
  
4. 监测目标目录的文件生成情况 
需求:用脚本每隔5分钟监测目标目录是否有新文件生成,若有新文件生成,则将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。 
                                                (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |