超详细的5个Shell脚本实例分享(值得收藏)


Posted in Javascript onAugust 15, 2019

概述

今天主要分享5个shell脚本实例,大家可以借鉴下里面的思路,看下有没另外一种实现方式。

1、定时清空文件内容,定时记录文件大小

#!/bin/bash 
################################################################ 
#每小时执行一次脚本(任务计划),当时间为0点或12点时,将目标目录下的所有文件内 
#容清空,但不删除文件,其他时间则只统计各个文件的打小,一个文件一行,输出到以时#间和日期命名的文件中,需要考虑目标目录下二级、三级等子目录的文件 
################################################################ 
logfile=/tmp/`date +%H-%F`.log 
n=`date +%H` 
if [ $n -eq 00 ] || [ $n -eq 12 ] 
 then 
 #通过for循环,以find命令作为遍历条件,将目标目录下的所有文件进行遍历并做相应操作 
 for i in `find /data/log/ -type f` 
 do 
 true > $i 
 done 
 else 
 for i in `find /data/log/ -type f` 
 do 
 du -sh $i >> $logfile 
 done 
fi

超详细的5个Shell脚本实例分享(值得收藏)

2、计算文档每行出现的数字个数,并计算整个文档的数字总数

#!/bin/bash 
######################################################### 
#计算文档每行出现的数字个数,并计算整个文档的数字总数 
######################################################## 
#使用awk只输出文档行数(截取第一段) 
n=`wc -l a.txt|awk '{print $1}'` 
sum=0 
#文档中每一行可能存在空格,因此不能直接用文档内容进行遍历 
for i in `seq 1 $n` 
do 
 #输出的行用变量表示时,需要用双引号 
 line=`sed -n "$i"p a.txt` 
 #wc -L选项,统计最长行的长度 
 n_n=`echo $line|sed s'/[^0-9]//'g|wc -L` 
 echo $n_n 
 sum=$[$sum+$n_n] 
done 
 echo "sum:$sum"

超详细的5个Shell脚本实例分享(值得收藏)

超详细的5个Shell脚本实例分享(值得收藏)

3、检测两台服务器指定目录下的文件一致性

#!/bin/bash 
##################################### 
#检测两台服务器指定目录下的文件一致性 
##################################### 
#通过对比两台服务器上文件的md5值,达到检测一致性的目的 
dir=/data/web 
b_ip=192.168.88.10 
#将指定目录下的文件全部遍历出来并作为md5sum命令的参数,进而得到所有文件的md5值,并写入到指定文件中 
find $dir -type f|xargs md5sum > /tmp/md5_a.txt 
ssh $b_ip "find $dir -type f|xargs md5sum > /tmp/md5_b.txt" 
scp $b_ip:/tmp/md5_b.txt /tmp 
#将文件名作为遍历对象进行一一比对 
for f in `awk '{print 2} /tmp/md5_a.txt'` 
do 
 #以a机器为标准,当b机器不存在遍历对象中的文件时直接输出不存在的结果 
 if grep -qw "$f" /tmp/md5_b.txt 
 then 
 md5_a=`grep -w "$f" /tmp/md5_a.txt|awk '{print 1}'` 
 md5_b=`grep -w "$f" /tmp/md5_b.txt|awk '{print 1}'` 
 #当文件存在时,如果md5值不一致则输出文件改变的结果 
    if [ $md5_a != $md5_b ] 
 then 
 echo "$f changed." 
 fi 
 else 
 echo "$f deleted." 
 fi 
done

超详细的5个Shell脚本实例分享(值得收藏)

4、检测网卡流量,并按规定格式记录在日志中

#!/bin/bash 
####################################################### 
#检测网卡流量,并按规定格式记录在日志中 
#规定一分钟记录一次 
#日志格式如下所示: 
#2019-08-12 20:40 
#ens33 input: 1234bps 
#ens33 output: 1235bps 
######################################################3 
while : 
do 
 #设置语言为英文,保障输出结果是英文,否则会出现bug 
 LANG=en 
 logfile=/tmp/`date +%d`.log 
 #将下面执行的命令结果输出重定向到logfile日志中 
 exec >> $logfile 
 date +"%F %H:%M" 
 #sar命令统计的流量单位为kb/s,日志格式为bps,因此要*1000*8 
 sar -n DEV 1 59|grep Average|grep ens33|awk '{print $2,"\t","input:","\t",$5*1000*8,"bps","\n",$2,"\t","output:","\t",$6*1000*8,"bps"}' 
 echo "####################" 
#因为执行sar命令需要59秒,因此不需要sleep 
done

超详细的5个Shell脚本实例分享(值得收藏)

输出结果:

超详细的5个Shell脚本实例分享(值得收藏)

5、杀死所有脚本

#!/bin/bash 
################################################################ 
#有一些脚本加入到了cron之中,存在脚本尚未运行完毕又有新任务需要执行的情况, 
#导致系统负载升高,因此可通过编写脚本,筛选出影响负载的进程一次性全部杀死。 
################################################################ 
ps aux|grep 指定进程名|grep -v grep|awk '{print $2}'|xargs kill -9

超详细的5个Shell脚本实例分享(值得收藏)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于 文本框默认值 的操作js代码
Jan 12 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 Javascript
Javascript网页抢红包外挂实现分享
Jan 11 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
layui 表单标签的校验方法
Sep 04 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
May 09 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
Jul 28 Javascript
koa2+vue实现登陆及登录状态判断
Aug 15 #Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 #Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 #Javascript
Element-UI中关于table表格的那些骚操作(小结)
Aug 15 #Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 #Javascript
js设计模式之单例模式原理与用法详解
Aug 15 #Javascript
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 #Javascript
You might like
PHP生成Flash动画的实现代码
2010/03/12 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python yield使用方法示例
2013/12/04 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
什么是servlet
2012/05/08 面试题
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书