当前位置: 首页 > Linux

在Linux上清理oraclelistener.log文件脚本

时间:2023-04-06 03:55:03 Linux

Linux上清理oraclelistener.log文件脚本,配合crontab定时清理大于1000MB的listener.log依赖于lsnrctlstatus不指定LISTENER可以获得信息。#!/bin/bash#这个脚本用于清理Oracle数据库listener.logonLinux#请使用OracleDB安装用户(如oracle)执行脚本#Xander.Cui原创#使用两种方法获取listener.log的绝对路径,仅供检测。#2.获取标准listener.log文件名#exportlistenerlog=$ORACLE_BASE/diag/tnslsnr/$(hostname)/listener/trace/listener.log#exportlistenerlogbak=$listenerlog-$DateMarksource~/.bash_profileexportDateMark=$(date+'%Y%m%d')exportDT=$(date+'%F%T')#检查log目录是否存在,不存在则创建exportlogdir=~/logexportchecklog=$logdir/listenerlog_check.logif[!-d$日志目录];然后mkdir-p$logdirecho"$DTChecked:Created$logdir">$checklogfi#1.通过lsnrctlstatusexportxmlfile=$(lsnrctlstat我们|grep“log.xml”|awk'{print$4}')exportprefixlog=${xmlfile%%/alert*}exportlistenerfile=$prefixlog/trace/listener.logexportlistenerfilebak=$listenerfile-$DateMark#计算listener.log文件的大小,单位MB,使用方法1得到的文件名exportlogsizemb=$(du-sm$listenerfile|awk'{print$1}')#Operatinglistener.logfileif[$logsizemb-gt1000];然后echo"***************已移动**************$DT检查:备份日志文件$listenerfile到$listenerfilebak.tar.gz">>$checklogmv$listenerfile$listenerfilebak;tar-zcPf$listenerfilebak.tar.gz$listenerfilebak--remove-fileselseecho"$DTChecked:Logfile($listenerfile)Size<1000MB,什么都不做。">>$checklogfi#结束使用命令添加定时任务(crontab-l|grep-vcheck_listenerlog)|crontab(crontab-l;echo"018***bash~/scripts/check_listenerlog.sh")|crontabBackup#!/bin/bash#这个脚本用于清理Linux上的Oracle数据库listener.log#Please使用OracleDB安装用户(如oracle)执行脚本#Xander.Cui原创#使用两种方法获取listener.log的绝对路径,仅供检测。#2.获取标准listener.log文件名#exportlistenerlog=$ORACLE_BASE/diag/tnslsnr/$(hostname)/listener/trace/listener.log#exportlistenerlogbak=$listenerlog-$DateMarksource~/.bash_profileexportDT=$(date+'%F%T')#检查log目录是否存在,不存在则创建exportlogdir=~/logsexportchecklog=$logdir/listenerlog_check.logif[!-d$日志目录];然后mkdir-p$logdirecho"$DTChecked:Created$logdir">$checklogfi#1.通过lsnrctlstatusexportxmlfile=$(lsnrctlstatus|grep"log.xml"|awk'{print$4}'获取listener.log)exportprefixlog=${xmlfile%%/alert*}exportlistenerfile=$prefixlog/trace/listener.logexportlistenerfilebak=$listenerfile.bak#计算listener.log文件的大小,单位MB,使用t方法1得到的文件名exportlogsizemb=$(du-sm$listenerfile|awk'{print$1}')#Operatinglistener.logfileif[$logsizemb-gt1000];然后echo“***************已移动**************$DT检查:备份日志文件$listenerfile($logsizembMB)到$listenerfilebak“>>$checklogtail-20000$listenerfile>$listenerfilebak;>$listenerfileelseecho"$DTChecked:Logfile($listenerfile)Size($logsizembMB)<1000MB,什么都不做。">>$checklogfi#结束