超详细的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 相关文章推荐
JQuery开发的数独游戏代码
Oct 29 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
JS获取select的value和text值的简单实例
Feb 26 Javascript
JavaScript参数个数可变的函数举例说明
Oct 10 Javascript
jquery实现翻动fadeIn显示的方法
Mar 05 Javascript
AngularJS的内置过滤器详解
May 14 Javascript
jquery实现兼容IE8的异步上传文件
Jun 15 Javascript
jQuery实现模拟marquee标签效果
Jul 14 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
详解Javascript数据类型的转换规则
Dec 12 Javascript
Express的HTTP重定向到HTTPS的方法
Jun 06 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
jquery 简单的进度条实现代码
2010/03/11 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
javascript实现评分功能
2020/06/24 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
python打包生成so文件的实现
2020/10/30 Python
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
高中自我评价范文
2014/01/27 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
审计班子对照检查材料
2014/08/27 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
建党伟业电影观后感
2015/06/01 职场文书
如何书写授权委托书?
2019/06/25 职场文书
七年级作文之秋游
2019/10/21 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
python函数的两种嵌套方法使用
2022/04/02 Python