alert日志按天切割脚本 alertlog_byday.sh

本文介绍了一段Shell脚本用于管理Oracle警报日志,实现按天存放并自动化运行,通过cron任务实现定期执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

alert告警日志管理:
路径 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/

 

将alert log 按天存放,每天一个alert log 文件
[oracle@ijx ~]$ cat alertlog_byday.sh
#############################
# alertlog_bydat.sh         #
# created by yhaichao       #
# 2013-8-22                 #
#############################
#!/bin/bash
DATE=`date +%Y%m%d`
ORACLE_SID=scard
db_unique_name=scard
cd /u01/oracle/diag/rdbms/$db_unique_name/$ORACLE_SID/trace/
if [ -f alert_$ORACLE_SID.log ];then
        if [ -f alert_${ORACLE_SID}_$DATE.log ];then
                echo "the file is exits!"
        else
                cat alert_$ORACLE_SID.log >>alert_${ORACLE_SID}_$DATE.log
                cat /dev/null > alert_$ORACLE_SID.log
        fi
fi
[oracle@ijx ~]$

将脚本添加到crontb:
[oracle@qs-wg-db2 ~]$ crontab -l
00 00 * * * /u01/scripts/alertlog_byday.sh >/u01/scripts/alertlog_byday.log 2>&1

### 关于 `self._log_alert` 的用法及常见问题解决方案 在 Selenium 自动化测试框架中,`self._log_alert` 并不是一个标准 API 或者官方定义的功能名称。然而,基于上下文中提及的相关技术背景(如 PhantomJS 和 Selenium 处理 JavaScript 弹窗的方式),可以推断出此方法可能是开发者自定义的一个内部工具函数,用于捕获和记录浏览器中的警告框 (`alert`) 日志信息。 以下是对其可能实现方式及相关注意事项的深入剖析: #### 1. **功能概述** `self._log_alert` 主要目的是监听并记录由网页脚本引发的所有弹窗消息内容(包括但不限于普通的 `alert()` 对话框)。通过这种方式可以帮助调试人员更方便地追踪前端行为表现是否符合预期设定值范围之内[^2]。 此类机制通常涉及到以下几个关键技术要点: - 利用 WebDriver 提供的基础能力访问底层浏览器引擎暴露出来的特殊接口; - 定义合适的钩子函数拦截特定类型的用户交互事件流; - 将捕捉到的结果妥善保存下来以备后期分析审查之需。 #### 2. **典型应用场景模拟** 假设我们正构建一个继承自 unittest.TestCase 的定制化测试基类 TestBase ,那么可以在其中加入如下所示片段来展示如何优雅地集成这一特性: ```python from selenium import webdriver import os class TestBase(unittest.TestCase): @classmethod def setUpClass(cls): mypath = "/usr/local/bin" cls.browser = webdriver.PhantomJS(executable_path=os.path.join(mypath, "phantomjs")) # 添加命令扩展支持 phantomjs 特定 api 调用 cls.browser.command_executor._commands["executePhantomScript"] = ("POST", '/session/$sessionId/phantom/execute') # 初始化日志收集器 cls.alert_logs = [] def _log_alert(self): """ 记录所有出现过的 alert 弹窗文本信息。 """ script = ''' var page = require('webpage').create(); page.onAlert = function(msg){ console.log("ALERT:" + msg); }; return null; ''' result = self.browser.execute('executePhantomScript', {'script': script, 'args': []}) logs = self.browser.get_log('browser') alerts = [entry['message'] for entry in logs if entry['level']=='INFO' and 'ALERT:' in entry['message']] self.alert_logs.extend(alerts) @classmethod def tearDownClass(cls): cls.browser.quit() # Example Usage within test case methods... def test_something_with_possible_alert(self): url = "http://example.com/page_that_may_trigger_an_alert.html" self.browser.get(url) self._log_alert() assert any(["Expected Alert Message" in log for log in self.alert_logs]), "Did not find expected alert message!" ``` 在此案例演示过程中需要注意几点事项: - 必须提前注册额外新增加的支持 executePhantomScript 动作指令集才能正常运作; - get_log 方法每次读取完毕之后都会自动清除缓存区内容所以要及时处理获取得到的数据以防丢失重要线索证据链断裂影响最终判定结论准确性[^1]; 另外值得注意的是由于 PhantomJS 已经停止维护更新迭代版本号多年时间过去了现在推荐切换迁移到 Headless Chrome/Firefox 等更加现代化替代方案上去继续开展工作实践探索研究创新突破自我超越极限追求卓越品质享受生活乐趣无限精彩纷呈好戏连台永不落幕! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值