超详细的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 Flash插入函数免激活代码
Mar 31 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
js图片向右一张张滚动效果实例代码
Nov 23 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
js实现点击图片改变页面背景图的方法
Feb 28 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
webpack独立打包和缓存处理详解
Apr 03 Javascript
vue中slot(插槽)的介绍与使用
Nov 12 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 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冒泡排序算法的深入理解
2013/06/09 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
python实现树形打印目录结构
2018/03/29 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
python可视化实现代码
2019/01/15 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python中zip函数如何使用
2020/06/04 Python
python3实现简单飞机大战
2020/11/29 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
年终总结会议主持词
2014/03/17 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
民主生活会发言材料
2014/10/20 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
Python序列化与反序列化相关知识总结
2021/06/08 Python