超详细的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+XML 省份和城市之间的联动实现代码
Oct 14 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
Aug 15 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
浅谈Vue下使用百度地图的简易方法
Mar 23 Javascript
详解webpack2异步加载套路
Sep 14 Javascript
浅谈js中的bind
Mar 18 Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
vue-cli随机生成port源码的方法
Sep 02 Javascript
JavaScript的function函数详细介绍
Nov 20 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作为网站开发语言的原因分享
2012/01/03 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python多线程用法实例详解
2015/01/15 Python
Django  ORM 练习题及答案
2019/07/19 Python
py-charm延长试用期限实例
2019/12/22 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
总经理助理职责
2014/02/04 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
服务理念标语
2014/06/18 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
台风停课通知
2015/04/24 职场文书
警示教育片观后感
2015/06/17 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python