超详细的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 相关文章推荐
node.js中的path.dirname方法使用说明
Dec 09 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
javascript实现禁止鼠标滚轮事件
Jul 24 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
AngularJs表单验证实例详解
May 30 Javascript
Javascript中的对象和原型(二)
Aug 12 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
jquery实现用户登陆界面(示例讲解)
Sep 06 jQuery
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 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+SqlServer实现分页显示
2006/10/09 PHP
php 一元分词算法
2009/11/30 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
js版本A*寻路算法
2006/12/22 Javascript
永不消失的title提示代码
2007/02/15 Javascript
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
NumPy统计函数的实现方法
2020/01/21 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
《观舞记》教学反思
2014/04/16 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
儿园租房协议书范本
2014/12/02 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
辩论赛新闻稿
2015/07/17 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
python+opencv实现目标跟踪过程
2022/06/21 Python