怎么归档老日志的shell脚本
本脚本来自有学习阿铭的博文学习:工作中,需要用到日志切割logrotate,按照各自的需要切割、定义保留日志。提示:本文中的S全部都$符,不要问为什么,马云爸爸的社区就这样。
#用途:日志切割归档、按天切割
#作者:Caron maktini
#日期:2018年12月15日
#版本:v0.1 logdir=/data/logs/
#定义函数如果一个文件存在则删除
function e_df()
{
if [ -f $1 ]
then
rm -f $1
} cd $logdir #从7到2,依次遍历循环
for i in `seq 7 -1 2`
do
#$i2比Si小1
i2=$[Si-1] #首先判断1.log.7是否存在,若存在则删除
e_df 1.log.$i #当1.log.6存在,则把1.log.6改名为1.log.7,依次类推
if [ -f 1.log.$i2 ]
then
mv 1.log.$i2 1.log.$i
fi
done #由于1.log 后面无后缀,所以不能走上面的for循环,只能另外拿出来处理
e_df 1.log.1
mv 1.log 1.log.1 #每日0点0分执行。
工作中还需要为大文件进行切割,一般工作中是100MB,并进行压缩。
第二脚本
#!/bin/bash
#用途:日志切割归档、并压缩
#作者:Caron maktini
#日期:2018年12月15日
#版本:v0.1 logdir=/data/logs/
#技术1.log大小
size=`du -sk $logdir/1.log | awk '{print S1}' #如果1.log小于l00MB,则退出脚本 if [ $size -lt 10240 ]
then
exit 0
fi #定义函数,如果一个文件存在,则删除
function e_df()
{
if [ -f $1 ]
then
rm -f $1
fi
}
cd $logdir #如果1.log.1存在,则先把它压缩为1 log.1.gz,这样下面的for循环才不会错 if [ -f 1.log.1 ]
then
gzip 1.log.1
fi #由于1.log.1已经被压缩为1.log.gz,所以可以直接将1.log改名为1.log.1 mv 1.log 1.log.1 #从7到2,倒序循环
for i in `seq 7 -1 2 `
do
#$i2比Si小1
i2=$[Si-1] #首先判断1 log.7.gz是否存在,若存在删除
e_df 1.Iog. $i.gz #当1.log.6.gz存在,则把1.log.6.gz改名为1.log.7.gz,以此类推
if [ -f 1.Iog. $i2. gz ]
then
mv 1.Iog. $i2.gz 1.Iog.$i.gz
fi
done ##说明:由于我们需要按照日志大小切割,所以这个脚本写完后,需要每分钟执行一次,建议添加到公司的监控系统中。
怎么归档老日志的shell脚本的更多相关文章
- weblogic每天日志合并shell脚本 [个人记录]【转】【补】
from RogerZhu modified by King sh logback.rb "/data/logs/" "/tmp/domain" "a ...
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
在ORACLE用户下的定时器设置 [oracle@SHARKDB dbscripts]$ crontab -l# minute hour day month week15 1 * * 0 sh / ...
- 日志类shell脚本
Apache日志文件切割 #!/bin/bash year=`date -d '-1 day' +%Y` month=`date -d '-1 day' +%m` day=`date -d '-1 d ...
- tomcat切割日志的shell脚本
#!/bin/bash cd /usr/tomcats/ d=`date +%F` m1=`date -d'1 month ago' +%F` ` do cd tomcat808"$i&qu ...
- 日志备份shell脚本
脚本注释已经很清楚了,就不再啰嗦了. 算了,还是多说一句吧,脚本设计完成之后,就可以加入计划任务,让电脑帮你打工了. 注:关于计划任务crontab,我会专门写一篇笔记. 最最最后一句, find $ ...
- shell脚本之分析oracle数据库数据泵日志中表的大小
1.分析日志格式如下 . . imported "xxx_330508"."xxx_T_DATA" 46.17 MB 268 rows . . imported ...
- 【shell】shell脚本入门
1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚 ...
- 网络分析shell脚本(实时流量+连接统计)
介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下.脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计 ...
- 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮 ...
随机推荐
- 关于Thinkphp访问不正常的问题
最近遇见了个蹩脚的问题,我放在服务器的项目(thinkphp框架)只能访问默认路径内容,不管你url怎么写的,他就访问默认那个文件.. 对于有强迫症的我来说实在是欺人太甚!!! 于是乎我就抓耳挠腮了. ...
- Spark+IDEA单机版环境搭建+IDEA快捷键
1. IDEA中配置Spark运行环境 请参考博文:http://www.cnblogs.com/jackchen-Net/p/6867838.html 3.1.Project Struct查看项目的 ...
- CNN中的池化层的理解和实例
池化操作是利用一个矩阵窗口在输入张量上进行扫描,并且每个窗口中的值通过取最大.取平均或其它的一些操作来减少元素个数.池化窗口由ksize来指定,根据strides的长度来决定移动步长.如果stride ...
- iOS多线程编程之NSThread的使用(转载)
1.简介: 1.1 iOS有三种多线程编程的技术,分别是: 1.NSThread 2.Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的 ...
- 软件工程-wordcount(C语言实现)
Github项目地址:https://github.com/xiaobaot/wordcount-wc/tree/master WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数 ...
- SUSE12的虚拟机安装以及ORACLE12C的安装
在本文中用到的所有参数,均位于文后附录中 在VMware中新建虚拟机,建好之后挂载光盘,启动虚拟机进入安装界面 初始化中 选择跳过注册 选择DVD模式 选择接受许可证条款 默认选择 选择默认系统 选择 ...
- 洛谷P5021 赛道修建 NOIp2018 贪心+二分答案
正解:贪心+LCA+二分答案 解题报告: 想先港下部分分qwq因为我部分分只拿到了10ptsQAQ(时间不够不是理由,其实还是太弱,所以要想很久,所以才时间不够QAQ m=1 找直径长度,完 一条链 ...
- nodejs(五)同步异步--BLOCKING THE EVENT LOOP
1.BLOCKING THE EVENT LOOP Node and JavaScript runtimes in general are single-threaded event loops. O ...
- Ceph 分布式存储
前言 Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之一. ...
- etcd 集群部署
etcd web管理 https://nikfoundas.github.io/etcd-viewer/ # git clone https://github.com/nikfoundas/etcd- ...