Shell + crontab 实现日志压缩归档

Shell + crontab 实现日志压缩归档

crontab

1 # archive the ats log file, keep 7 days.
2 */5 * * * * root /bin/sh /path/archive_atslog.sh >/dev/null 2>&1

shell

 1 #!/bin/bash
 2 # Author      : standby
 3 # Date        : 2017-04-17
 4 # Description : Archive the live log, keep the lastest 7 days.
 5
 6 logdir="/data/ats/logs"
 7 TODAY=`date -d "6 minutes ago" +%Y%m%d`
 8
 9 function get_exter_ip()
10 {
11     arr=(`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk ‘{print $2}‘|tr -d "addr:"`)
12     exter_ip=${arr[0]}
13     for ip in ${arr[*]}
14     do
15         ip_tmp=`echo $ip | grep -v ‘^10\.‘`
16         if [[ ! -z $ip_tmp ]];then
17             break
18         fi
19     done
20     exter_ip=$ip_tmp
21     echo $exter_ip
22 }
23 IP=`get_exter_ip`
24 # rename log file
25 cd $logdir
26 for i in `ls access.log_*.old`
27 do
28     DATE=`echo $i |awk -F "[-.]" ‘{print $(NF-4)$(NF-3)}‘ |sed ‘s/[hms]//g‘`
29     mv $i live_${IP}_${DATE}_05min.log
30 done
31
32 subPath=$logdir/$TODAY/
33 # gzip and archive log file
34 [ ! -d $subPath ] && mkdir -p $subPath
35 for i in `ls live_*.*_05min.log`
36 do
37     gzip $i
38     mv $i".gz" $subPath
39 done
40
41 # clean log files which 7 days ago
42 i=0
43 while [[ i -lt 7 ]]
44 do
45     weekDay[i]=`date -d "-${i} day" +"%Y%m%d"`
46     let i++
47 done
48 for dir in `ls | grep -E "([0-9]{8})"`
49 do
50     [[ "${weekDay[@]}" =~ $dir ]] || rm -rf $dir
51 done
时间: 2024-11-13 10:17:22

Shell + crontab 实现日志压缩归档的相关文章

ora-16038:日志无法归档 ora-00312 ORA-19809: limit exceeded for recovery files ora-19804

ORA-03113:通信通道的文件结尾 进程ID4781 查看alter.log 发现提示联机日志文件有问题 网上的方法看不是很懂,看到有很多错误 ora-16038:日志无法归档 ora-00312 ORA-19809: limit exceeded for recovery files ora-19804:无法回收...磁盘空间 原来Oracle11g在默认情况下,归档日志是保存在闪存恢复区的,并且闪存恢复区的大小默认是2g,空间满了之后就没有办法再归档了. 启动数据库到mount状态,st

[Shell]crontab 执行任务调用shell脚本,相对路径无法找到

问题出现的场景大概就是 1  cron调用一个python脚本 2  python脚本中调用一个shell脚本(对日志分析)获取shell输出然后发送邮件 类似一个监控任务. 直接执行python脚本没有问题,但是写在cron中之后,shell脚本中的相对路径就找不到了,总是提示无法找到某些文件 后来解决的问题就是使用log文件的绝对路径,运行就正常了. google了一些,发现很多人也遇到过类似的问题,可能和cron的机制有关系. 大部分人的问题都是因为环境变量造成的,因为cron是一个独立进

linux计划任务及压缩归档

1.计划任务介绍 我们可以通过一些设置.来让电脑定时提醒我们该做什么事了.或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务.而遇到一些需要执行的事情或任务.我们也可以通过命令来告诉电脑一会临时把这个工作给做一下 总结:在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能的 计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据 计划任务的安排方式分两种: 定时性的,也就是例行.就是每隔一定的周期就要重复来做这个事情 突发性的,就是这

7-2 文件查找和压缩归档

文件查找和压缩归档 文件查找 locate命令 介绍 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb) 索引构建过程需要遍历整个根文件系统,极消耗资源 工作特点: 查找速度快 模糊查找 非实时查找 搜索的是文件的全路径,不仅仅是文件名 可能只搜索用户具备读取和执行权限的目录 语法 locate KEYWORD 常用选项 -i 不区分大小写的搜索

nginx日志定期归档脚本

#!/bin/bash #nginx下域名access日志切割归档脚本 YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #==================================================Definition array==================================================== catalogue=(         www_logs         service_l

关于linux系统下文件压缩归档操作命令略提

Linux下文件压缩归档操作命令:gzip/ungzip 后缀 .gz  xz/unxz       后缀 .xz  bzip2/bunzip2 后缀 .bz2  tar 用于归档并压缩  -# :#为0-9 指定压缩比 gzip -c name 压缩结果输出到标准输出  -d 解压缩  -v verbose  zcat 不解压的情况下查看压缩文件  -r 递归压缩 xz -k 保留原文件 xzcat 不解压的情况下查看原文件 tar Jcf FILE.tar.xz /DIR/TO/FILE 将

带镜像的数据库日志压缩方案

带有镜像的数据库的压缩,如果有些情况没有按照步骤,可能不能将数据库压缩 1:  backup log BACKUP LOG [database name] TO  DISK = N'path\txxx.bak' WITH NOFORMAT, NOINIT,  NAME = database name-Transaction Log  Backup',  SKIP, NOREWIND, NOUNLOAD,  STATS = 102: 确保同步完成 注意确保 mirror 状态是已经同步完成. 3:

将android客户端的错误日志压缩上传到服务器

原文:将android客户端的错误日志压缩上传到服务器 源代码下载地址:http://www.zuidaima.com/share/1550463760370688.htm

文件的查找与压缩归档

文件的查找与压缩归档 locate find 压缩与归档 locate 主要用途 查询系统上预建的文件索引数据库 locate - find files by namelocate [OPTION]... PATTERN... locate查询文件时,会去搜索/var/lib/mlocate/mlocage.db, 这个数据库会在系统空闲时自动周期性进行,一般一天一次更新,手动更新命令为updatedb, 索引的构建需要遍历整个根文件系统,比较消耗资源.但locate有如下特性: 1. 模糊查找