分享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

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"

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

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、杀死所有脚本

#!/bin/bash

################################################################

#有一些脚本加入到了cron之中,存在脚本尚未运行完毕又有新任务需要执行的情况,

#导致系统负载升高,因此可通过编写脚本,筛选出影响负载的进程一次性全部杀死。

################################################################

ps aux|grep 指定进程名|grep -v grep|awk '{print $2}'|xargs kill -9

十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客相关推荐

  1. linux降低磁盘的读,Linux磁盘I/O优化:vm.dirty_ratio - 米扑博客

    Linux 文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据).写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到 ...

  2. linux var log目录作用,Linux系统/var/log/journal/垃圾日志清理 - 米扑博客

    CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal # ls -l /etc/logrotate.d/ -rw-r--r-- 1 root root 9 ...

  3. linux 指令效率,Linux15个命令,大幅提高工作效率 - 米扑博客

    Linux 15个命令神器 ag.tig.mycli.jq.shellcheck.fzf.fpp.htop.glances.axel.sz/rz.cloc.tmux.script/scriptrepl ...

  4. 说说宾得机身的十大人性化设定和功能[转]_我是亲民_新浪博客

    从专业级的摄影器材技术水平来说,宾得无疑是一个落后的厂家,无论是机身的对焦.测光与白平衡的算法,还是现代变焦镜头镜片组.镜头马达的设计上,距离佳能尼康的专业级器材还有一段距离.当然宾得自身也非常了解自 ...

  5. linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客

    今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...

  6. linux将文件的第二列求和,awk实现第一列相乘,第二列求和,并相加 - 米扑博客...

    AWK 取了三位创始人 Alfred Aho,Peter Weinberger,  Brian Kernighan 的Family Name的首字符,学习AWK有一本相当经典的书<The AWK ...

  7. linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客

    在进行文本处理的时候,我们经常遇到要删除重复行的情况.那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的,uniq对于重复行不上下连续时不起作用 因此,先对 ...

  8. php数字对应的大字母,PHP判断数字,字母,特殊符号,中文 - 米扑博客

    PHP 判断数字,字母,特殊符号,中文 代码如下: /** * 0 包含数字,字母,特殊符号 * @param unknown $str * @return 0 - 数字字母符号: 1 - 数字: 2 ...

  9. linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客

    测试树形目录 $ cd mimvp-blog/ $ tree . |____111.txt |____222.txt |____333.txt |____folder01 | |____111.txt ...

最新文章

  1. 设计输出实数的格式,实数用%6.2f格式输出
  2. Android开发环境——Eclipse ADT相关内容汇总
  3. python共享内存
  4. SPQuery 查询知多少
  5. DFiddler:A HTTP Packets Listener一个简易版的手机端的Fiddler。
  6. Serverless的4种错误打开方式
  7. jzoj4049-排序【搜索】
  8. MySQL无中心化集群_MySQL Plus 如何做到无中心化、数据强一致性、秒级切换?
  9. 红帽RHEL8和RHEL7有什么区别?
  10. 【微信】1.微信小程序开发--入门
  11. 39-如何共享数据?
  12. FPGA数字信号处理(十七)多级CIC滤波器Verilog设计
  13. 外挂制作--------NP认识
  14. 《组合数学全家桶》(ACM / OI 全网最全,清晰易懂)
  15. 2020年杭州电子科技大学计算机考研经验分享
  16. k2p B1版本官改关闭路由器ipv6分配
  17. 太空大战2d游戏制作
  18. 这18个网站能让你的页面背景炫酷起来
  19. Apache Passenger配置常用参数解读
  20. android 识别中文字体,在 Android 上高效准确的进行 OCR 识别,白描帮你实现

热门文章

  1. UE/UX 设计师可临摹的应用模板!
  2. 处理器指令编码可重定义的方法_RISC-V学习笔记1 《基于FPGA与RISC-V的嵌入式系统设计》第3章 RISC-V指令集...
  3. 利用php百马百担_百鸡百钱===百马百担====for循环嵌套
  4. 牛客网编程题03--明明的随机数
  5. python实现发送免费短信功能
  6. make_pair 简单使用
  7. const char *转wstring 方法
  8. C++中BEGIN_MSG_MAP或者BEGIN_MESSAGE_MAP的个人理解
  9. Memory Management Concepts overview(内存管理基本概念)
  10. java选择排序算法实现