网站首页 > 技术文章 正文
现有一个应用系统,应用日志记录的内容很多,经常造成存储空间不够,需要手工去删除早期的日志文件来释放空间。应用的日志文件命名如下,固定前后缀加上日期和小时:
为了避免手工删除日志,考虑通过写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
注:命令中~表示用户的主目录,也可以使用绝对路径进行。
猜你喜欢
- 2024-11-05 Graylog日志管理 glog日志库
- 2024-11-05 如何定义日志消息的级别?详解日志的5个级别
- 2024-11-05 Metadata(Ordered) Journaling日志文件系统
- 2024-11-05 PostgreSQL WAL日志详解 poster是什么意思中文
- 2024-11-05 运行`sh startup.sh -m standalone`命令后,如何查看启动日志?
- 2024-11-05 ORACLE DG 日志传输的停止与恢复 oracle 12c crsd日志
- 2024-11-05 Oracle 参数 ENABLE_DDL_LOGGING oracle 参数调优
- 2024-11-05 如何确定重做日志组的个数 日志记录重做和回滚
- 2024-11-05 老王,怎么完整SQL的显示日志 sql 日志查询
- 2024-11-05 使用 Oracle LogMiner 分析重做日志
你 发表评论:
欢迎- 620℃几个Oracle空值处理函数 oracle处理null值的函数
- 612℃Oracle分析函数之Lag和Lead()使用
- 601℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 597℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 593℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 585℃【数据统计分析】详解Oracle分组函数之CUBE
- 574℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 563℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)