写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分钟监测目标目录是否有新文件生成,若有新文件生成,则将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。

实现:

#!/bin/bash

##################################################################

#用脚本每隔5分钟监测目标目录是否有新文件生成,若有新文件生成,则将新文件

#列表输出到一个按年、月、日、时、分为名字的日志里

##################################################################

a=`date -d "-5 min" +%Y-%m-%d-%H-%M`

logfile=/tmp/$a.log

basedir=/home

#查找修改时间少于5分钟的文件,并将列表记录在临时文件中

find $basedir/ -type f -mmin -5 >/tmp/test.txt

n=`cat /tmp/test.txt|wc -l`

if [ $n -gt 0 ]

then

mv /tmp/test.txt $logfile

fi

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

#!/bin/bash

####################################

#对历史命令排序|查重|倒叙排列|取前10行

####################################

sort /root/.bash_history|uniq -c|sort -nr|head

输出:

【编辑推荐】

【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0

linux 查重脚本,Linux脚本学习必经之路:Shell脚本实例分享相关推荐

  1. ue 编写linux脚本,通过什么工具编写shell脚本更方面直观

    刚开始学习写shell脚本,现在主要是通过vi编辑器,但感到很不方便和直观.通过UtralEdit倒是方便但不直观,比如shell编程中的关键字不能醒目出来.想请教一下各位大虾,有没有这么类似于像vc ...

  2. 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...

  3. Linux命令每五分钟执行一次,Linux crontab 每5秒钟执行一次 shell 脚本 的方法

    Linux crontab 每5秒钟执行一次 shell 脚本 的方法 由于 Linux 的 crontab 的定时命令格式如下: minute hour day-of-month month-of- ...

  4. linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式

    主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...

  5. linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?

    当我们学习Linux技术的时候,会涉及各种各样的知识和内容,比如说shell脚本语言,我想很多人都会疑惑shell脚本语言有什么优势?为何学习Linux的时候必须学习呢?我们来看看吧. 当命令和程序语 ...

  6. linux脚本ping如何自动退出,shell脚本自动检测网络掉线和自动重连

    在ppp移植成功后,有时会出现ppp掉线等情况.这篇文章写了一个自动检测连接网络的解决方法. 创建一个shell脚本,在里面添加一下内容.(记得给操作权限) #!/bin/sh //根据你自己的she ...

  7. linux php直接输出,linux学习之shell脚本 ------- 输入与输出

    概述 顾名思义,通俗来说异常就是指,那些产生在我们本来斟酌和设定的计划以外的意外情况. 生活中总是会存在各种突发情况,如果没有做好准备,就让人措手不及. 你和朋友约好了明天1起去登山,半道上忽然乌云蔽 ...

  8. linux shell脚本学习指南,shell脚本学习指南[二](Arnold Robbins Nelson H.F. Beebe著)

    该进入第四章了,刚才看到一个帖子标题:我空有一身泡妞的好本领,但可惜自己是个妞.汗-这个...音乐无国界嘛,这个不应该也没性别界么? 第四章文本处理工具 书中先说明了以下排序的规则,数值的就不用说了, ...

  9. 【linux 学习】shell脚本自动化登录

    每次登录都需要输入密码,,好麻烦滴感觉,于是想做个自动登录脚本,岂不美哉^ . ^ 如何输入密码是个大问题,好在有个交互输入的工具[expect] 首先需要安装一下, [Centos] #查看是否安装 ...

最新文章

  1. pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)
  2. htaccess简介和16个小技巧
  3. Oracle入门(九A)之用户的权限或角色
  4. Python 项目打包成可执行程序命令
  5. 前端学习(1700):前端系列javascript之作用域和自由变量
  6. 【C语言基础】C语言异常捕获机制 - assert
  7. QQ浏览器如何更改截图路径
  8. 云数据库时代:企业数据架构的云化智能重构和变革(含大会PPT)
  9. Cron 触发器及相关内容 (第一部分)
  10. IIS 如何用同一IP解析不同域名到同一服务器
  11. Cisco基础(六):配置目前网络环境、项目阶段练习
  12. Windows 无法访问\\196.168.206.xx,你的计算机配置似乎是正确的,但该设备无法访问的问题解决
  13. Linux设备管理(三):sysfs文件系统的功能及其应用
  14. 转帖科学观点:没有特异性的免疫屏障
  15. 小甲鱼c语言入门冒泡,小甲鱼 排序算法 冒泡排序
  16. AGTF30 涡扇发动机说明
  17. 宋智孝那个机器人_陈柏霖机器人竟然冷落宋智孝
  18. python 汉字 简繁体 转换方法
  19. flying saucer做导PDF踩过的坑~
  20. 海量文件、超大文件,如何实现高速传输?

热门文章

  1. labelImg的汉化与打包
  2. 服务器e5与e7性能差异,英特尔:至强E3、E5和E7服务器处理器
  3. mysql报警代码183_mysql误删操作回复
  4. 曲面和曲线积分的概念与计算【高等数学(下)十一章】
  5. 使用Access时遇到的问题
  6. 设计模式----工厂
  7. Go 开源项目推荐:一个简单的 Go 练手项目
  8. 成人学位英语和计算机考试时间,学位英语考试时间是什么时候?学位英语相当于英语几级?...
  9. Divide by 2 or 3
  10. box-sizing:border-box的作用 (转载)