按日期分割oracle 告警日志文件并按日期保存
方法一:用sed 流编辑器
#!/bin/bash
# ------------------------------------------
# Filename: cutalert.sh
# Revision: 1.1
# Date: 2023/02/17
# Author:xu
# Description:截取当天警告日志文件
# ------------------------------------------
# Copyright: 2023 xu
# License: GPL
LANG='en_US.UTF-8'
#edate_today 英文日期
edate_today=`date +"%a %b %d"`
#pri_ipadd 网卡bond1 ip地址
pri_ipadd=`/sbin/ifconfig bond0|grep "inet "|awk '{print $2}'|cut -d: -f2`
echo $pri_ipadd
echo $edate_today
LANG='zh_CN.UTF-8'
# cdate_today 中文日期
cdate_today=`date +'%Y-%m-%d'`
echo $cdate_today
# oraclesid 数组存放实例名
oraclesid=(`ps -ef |grep smon|grep oracle|awk '{print $8}'|awk -F_ '{print $3}'`)
for pwdsid in ${oraclesid[@]}
do
path_pwd="/u01/app/oracle/diag/rdbms/"${pwdsid:0:${#pwdsid}-1}"/"$pwdsid"/trace/"
echo $path_pwd
cd $path_pwd
mkdir ./alertlog 2>/dev/null
# 截取当天日志并保存到当日文件中
sed -n -e "/^$edate_today/,/GG/p" alert_${pwdsid}.log >./alertlog/alert_${pri_ipadd}_${pwdsid}_${cdate_today}.log
#在目标服务器新建当日的目录
ssh -p 22 oracle@10.129.6.72 'mkdir /alertlog/'${cdate_today} ' 2>/dev/null'
#将日志文件复制到目标服务器上
scp -P 22 ./alertlog/alert_${pri_ipadd}_${pwdsid}_${cdate_today}.log oracle@10.129.6.72:/alertlog/${cdate_today}/
done
以上代码本人亲测过
方法二:
您可以使用csplit命令按照日期将Oracle告警日志文件进行分割,并按日期保存。csplit命令可以根据给定的模式将文件分割成多个部分。
以下是一个示例命令,将Oracle告警日志文件按照日期分割并保存:
```shell
csplit -s -f alert_log -b "%Y-%m-%d.log" alert.log '/^Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun/' '{*}'
```
解释一下这个命令:
- `-s` 参数用于禁止输出分割文件的名称到标准输出。
- `-f alert_log` 参数指定了生成的分割文件的前缀。例如,生成的文件名将以`alert_log`开头。
- `-b "%Y-%m-%d.log"` 参数指定了生成的分割文件的后缀格式。在这个示例中,分割文件将以`YYYY-MM-DD.log`的格式进行保存,其中`%Y`表示四位年份,`%m`表示两位月份,`%d`表示两位日期。
- `alert.log` 是您要分割的Oracle告警日志文件的名称。
- `'/^Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun/'` 是用来匹配日期行的正则表达式模式。您可以根据实际情况进行调整。
- `{*}` 表示将输入文件按照匹配到的模式进行分割成多个部分。
执行以上命令后,将会生成多个按日期分割的文件,例如`alert_logYYYY-MM-DD.log`。
请注意,csplit命令是在Linux/Unix系统上可用的。如果您正在使用Windows系统,则可以使用类似的工具,如PowerShell脚本或其他分割文件的实用工具。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)