十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客
分享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脚本 - 米扑博客相关推荐
- linux降低磁盘的读,Linux磁盘I/O优化:vm.dirty_ratio - 米扑博客
Linux 文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据).写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到 ...
- linux var log目录作用,Linux系统/var/log/journal/垃圾日志清理 - 米扑博客
CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal # ls -l /etc/logrotate.d/ -rw-r--r-- 1 root root 9 ...
- linux 指令效率,Linux15个命令,大幅提高工作效率 - 米扑博客
Linux 15个命令神器 ag.tig.mycli.jq.shellcheck.fzf.fpp.htop.glances.axel.sz/rz.cloc.tmux.script/scriptrepl ...
- 说说宾得机身的十大人性化设定和功能[转]_我是亲民_新浪博客
从专业级的摄影器材技术水平来说,宾得无疑是一个落后的厂家,无论是机身的对焦.测光与白平衡的算法,还是现代变焦镜头镜片组.镜头马达的设计上,距离佳能尼康的专业级器材还有一段距离.当然宾得自身也非常了解自 ...
- linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客
今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...
- linux将文件的第二列求和,awk实现第一列相乘,第二列求和,并相加 - 米扑博客...
AWK 取了三位创始人 Alfred Aho,Peter Weinberger, Brian Kernighan 的Family Name的首字符,学习AWK有一本相当经典的书<The AWK ...
- linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客
在进行文本处理的时候,我们经常遇到要删除重复行的情况.那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的,uniq对于重复行不上下连续时不起作用 因此,先对 ...
- php数字对应的大字母,PHP判断数字,字母,特殊符号,中文 - 米扑博客
PHP 判断数字,字母,特殊符号,中文 代码如下: /** * 0 包含数字,字母,特殊符号 * @param unknown $str * @return 0 - 数字字母符号: 1 - 数字: 2 ...
- linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客
测试树形目录 $ cd mimvp-blog/ $ tree . |____111.txt |____222.txt |____333.txt |____folder01 | |____111.txt ...
最新文章
- 设计输出实数的格式,实数用%6.2f格式输出
- Android开发环境——Eclipse ADT相关内容汇总
- python共享内存
- SPQuery 查询知多少
- DFiddler:A HTTP Packets Listener一个简易版的手机端的Fiddler。
- Serverless的4种错误打开方式
- jzoj4049-排序【搜索】
- MySQL无中心化集群_MySQL Plus 如何做到无中心化、数据强一致性、秒级切换?
- 红帽RHEL8和RHEL7有什么区别?
- 【微信】1.微信小程序开发--入门
- 39-如何共享数据?
- FPGA数字信号处理(十七)多级CIC滤波器Verilog设计
- 外挂制作--------NP认识
- 《组合数学全家桶》(ACM / OI 全网最全,清晰易懂)
- 2020年杭州电子科技大学计算机考研经验分享
- k2p B1版本官改关闭路由器ipv6分配
- 太空大战2d游戏制作
- 这18个网站能让你的页面背景炫酷起来
- Apache Passenger配置常用参数解读
- android 识别中文字体,在 Android 上高效准确的进行 OCR 识别,白描帮你实现
热门文章
- UE/UX 设计师可临摹的应用模板!
- 处理器指令编码可重定义的方法_RISC-V学习笔记1 《基于FPGA与RISC-V的嵌入式系统设计》第3章 RISC-V指令集...
- 利用php百马百担_百鸡百钱===百马百担====for循环嵌套
- 牛客网编程题03--明明的随机数
- python实现发送免费短信功能
- make_pair 简单使用
- const char *转wstring 方法
- C++中BEGIN_MSG_MAP或者BEGIN_MESSAGE_MAP的个人理解
- Memory Management Concepts overview(内存管理基本概念)
- java选择排序算法实现