Oracle-清理监听日志文件 listener.log
Posted 小宝大人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle-清理监听日志文件 listener.log相关的知识,希望对你有一定的参考价值。
监听日志文件listener.log在哪?
单机(集群)都看这里,只不过,集群是在grid用户下,而单机则是在oracle用户下。那么,怎么快速的找到它呢?
##就是这样。这里说的是 log.xml 监听日志文件
cd $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/alert
下图中,显示的是监听日志文件log.xml
的目录位置。
监听日志文件listener.log在这里!
如何查看监听日志文件的大小呢?
一般我们是进入监听日志文件所在目录,使用du -sh或者du -sh *或者du -sh listener.log查看其大小。但是,假如有数十上百个库,你也要一个一个进入目录,去查看吗?快捷命令来了。这样一定速度提高了效率。
cd $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener && du -sh *
有图有真相!我们只需要关注这两个文件夹的大小,即可决定是否需要清理。
如何清理呢?
首先,不需要停止监听服务。
其次,备份监听服务,以免带来不必要的麻烦,你懂的。
一般,我们这样操作。
echo /dev/null listener.log
或者
> listener.log
或者
cat /dev/null > listener.log
监听日志文件log.xml如何清理呢?
##找到过去30日以前的文件,并删除它
[root@b19c01 ~]# su - grid
Last login: Wed Sep 14 23:23:47 CST 2022 on pts/3
[grid@b19c01:/home/grid]$ find $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/alert -mtime +30 -name "log_*.xml" | xargs rm -rf
[grid@b19c01:/home/grid]$ cd $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/alert
[grid@b19c01:/u01/app/grid/diag/tnslsnr/b19c01/listener/alert]$ ls
log.xml
[grid@b19c01:/u01/app/grid/diag/tnslsnr/b19c01/listener/alert]$
find Linux find 命令 | 菜鸟教程 (runoob.com)
xargs Linux xargs 命令 | 菜鸟教程 (runoob.com)
使用定时任务crontab定期自动清理
##新建并编辑定时任务,找到30日以前的所有 log_*.xml,并删除
vi oracle_log_xml_clear.sh
#!/bin/sh
find $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/alert -mtime +30 -name "log_*.xml" | xargs rm -rf
##设置定时任务每天23点执行
##注意:当程序在你所指定的时间执行后,
##系统会发一封邮件给当前的用户,
##显示该程序执行的内容,
##若是你不希望收到这样的邮件,
##请在每一行空一格之后加上 > /dev/null 2>&1 即可
crontab -e
0 23 * * * /home/oracle/scirpt/oracle_log_xml_clear.sh > /dev/null 2>&1
Linux crontab 命令 | 菜鸟教程 (runoob.com)
以上是关于Oracle-清理监听日志文件 listener.log的主要内容,如果未能解决你的问题,请参考以下文章
Oracle数据库运维:要对监听日志文件(listener.log)进行定期清理,如果不定期清理,会遇到下面一些麻烦