现有一个应用系统,应用日志记录的内容很多,经常造成存储空间不够,需要手工去删除早期的日志文件来释放空间。应用的日志文件命名如下,固定前后缀加上日期和小时:

为了避免手工删除日志,考虑通过写shell脚本来删除30天以前的日志文件,然后使用crontab命令生成定时任务,在每天早上0点1分调用上面的shell脚本进行日志清理。

基本环境信息如下:

工作目录:/home/weblogic/scripts/cleanlog

日志文件目录:/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/sk

1. 创建日志清理脚本cleanLog.sh

cd /home/weblogic/scripts/cleanlog

vi cleanLog.sh

输入脚本内容如下:

WORK_HOME=/home/weblogic/scripts/cleanlog

WORK_LOG_FILE=${WORK_HOME}/log/cleanup.log

#WORK_ERROR_FILE=${WORK_HOME}/log/cleanup.error.log

LOG_PATH=/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/sk/

LOG_FILE_DATE_PART=`date -d "-30 day" +%Y-%m-%d`

LOG_FILE=${LOG_PATH}sk.log.${LOG_FILE_DATE_PART}*.log

function log() {

echo `date +"%Y-%m-%d %H:%M:%S - "`$1' ' >>${WORK_LOG_FILE}

}

log "clean up log start..."

log "rm -f "$LOG_FILE

rm -f $LOG_FILE 1>>$WORK_LOG_FILE 2>>$WORK_LOG_FILE

log "clean up log end."

2. 生成定时任务

首先生成定时任务的配置文件cron.txt,内容如下:

1 0 * * * sh /home/weblogic/scripts/cleanlog/cleanLog.sh

表示每天0点1分执行脚本cleanLog.sh

然后生成定时任务:crontab cron.txt

注意执行前要通过crontab -l查看,确保原来没有定时任务,否则会覆盖定时任务。

补充说明:

1) 可以通过crontab -l来查看定时的情况。

2) 要删除全部定时任务:crontab -r,但是要慎用。

3) 也可以通过crontab -e来打开任务列表,选中指定的任务进行删除。

4) 如果定时任务不执行或者执行出错,可以通过root用户来查看定时任务的执行日志:

tail-200f /var/log/cron

5) 为了方便调试,可以把定时任务设成分钟执行一次:*/1 * * * *

3. 创建日志目录和查看执行日志

脚本有记录日志清理的情况,需要在工作目录下创建一个log目录:

cd /home/weblogic/scripts/cleanlog

mkdir log

然后可以通过以下命令来查看日志清理的情况:

tail -200f cleanup.log

4. 如果是集群,复制相关文件到其他服务器并启动定时任务

复制相关文件可以从当前服务器通过scp命令进行复制:

scp -r scripts/ 用户名@目标服务器地址:~/scripts

注:命令中~表示用户的主目录,也可以使用绝对路径进行。

shell命令删除昨日的日志_linux定时自动清理日志文件相关推荐

  1. gentos 执行sh文件_linux定时自动清理日志文件

    现有一个应用系统,应用日志记录的内容很多,经常造成存储空间不够,需要手工去删除早期的日志文件来释放空间.应用的日志文件命名如下,固定前后缀加上日期和小时: 为了避免手工删除日志,考虑通过写shell脚 ...

  2. elasticsearch服务器定时自动清理日志索引

    突然想到项目中每天要生产各个环境的索引...时间一长会越来越多. 这里写一个定时自动清理elasticsearch的脚本 首先.我们进入到elasticsearch的索引目录中去   发现索引数据是真 ...

  3. oracle导入命令,记录一下 数据库日志太大,清理日志文件

    oracle导入命令,记录一下 工作中用到了,这个命令,记录一下,前提要安装imp.exe imp PECARD_HN/PECARD_HN@127.0.0.1:1521/orcl file=E:\wo ...

  4. linux系统中实现自动清理日志

    1.定时调度工具crontab相关的rpm下载 链接:https://pan.baidu.com/s/1GBQ0_KZ9i48CjcCi978fEQ  提取码:58e4 2.若没有crontab的需要 ...

  5. linux系统自动清理日志实现脚本

    1.删除文件命令:find  对应目录  命令选项 实例命令 find /export/Logs/ -type f -name "*log*" -mtime +3 -exec rm ...

  6. zookeeper3.4.6配置实现自动清理日志【转】

    在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存 ...

  7. shell实例第23讲:每天定时备份nginx日志

    每天定时备份nginx日志 要求 每天凌晨3点开始备份nginx日志 一.编写日志切割脚本 #!/bin/bashLOG_DIR=/usr/local/webserver/nginx/logs/YES ...

  8. centos7当数据盘到达百分之80%后自动清理日志的shell脚本

    思路简单 首先编写一个shell脚本,然后用crontab定时任务每天执行一遍cat logs.sh #!/bin/bash disk=$(df -H | grep '/dev/vda1' | awk ...

  9. zookeeper3.4.6配置实现自动清理日志

    在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存 ...

最新文章

  1. Oracle RAC 添加删除节点
  2. 光纤以太网交换机产品性能介绍
  3. risc系统服务器,精简的高端 解析四大RISC服务器处理器
  4. 安卓蓝牙键盘切换输入法_Windows10添加中文美式键盘,传统语言栏,采用ctrl+shift切换输入法...
  5. cadence 介绍
  6. php获取input file路径,input上传文件获取路径为C:\fakepath\文件名
  7. oracle全量拷贝,oracle数据库expdp异机全量备份
  8. 中国oracle ace名单
  9. 计算机技术毕业生个人简历,计算机技术毕业生个人简历模板
  10. 立方体图片的在线绘制与制作
  11. 青你3倒奶,蒙牛装小白花?
  12. LSwarm:复杂城市场景下覆盖受限的大集群高效避碰(Swarm-2019)
  13. 大二综合项目:数据库Mysql,Navicat
  14. win10卸载电脑管家就蓝屏_Win10电脑蓝屏原因排查及解决方案
  15. Rust中,*const T和*mut T的区别是什么?
  16. 如何画好素描?画好素描绘画有哪些技巧?
  17. 远程服务器多用户登录,Win2008 R2远程桌面多用户登陆的配置方法
  18. 逆势:衰退的开发者信心和不断示好的开发环境
  19. 试题 算法训练 无聊的逗
  20. oracle oaf界面个性化,OAF个性化开发实例(转)

热门文章

  1. 折纸 瓦力机器人_折纸图解金鱼筷子架
  2. Oracle列直方图的问题隐患
  3. PostgreSQL的安装和启动方法大全
  4. SmartCommit让复合提交不在是难题
  5. 【华为云技术分享】云小课 | SAP扩容实战
  6. 一图尽览华为云数据库全套安全解决方案
  7. 化繁就简 · 万物互联,华为云All-Connect企业级云网络正式发布
  8. 一条数据的HBase之旅,简明HBase入门教程4:集群角色
  9. 华为云 AI 实战营计划,带你迈上 AI 之路
  10. python生成exe启动很慢,win2000上的python启动非常慢