`I创建用于检查oracle数据的运行状况检查脚本
datagaurd状态输出如下所示 - Primary database
Warning: ORA-16817: unsynchronized fast-start failover configuration
- (*) Physical standby database
Warning: ORA-16817: unsynchronized fast-start failover configuration
或者它也会喜欢 - Primary database
Warning: ORA-16817: unsynchronized fast-start failover configuration
- (*) Physical standby database
Warning: ORA-16817: unsynchronized fast-start failover configuration
所以我的要求是当错误“ORA”发生时打印前一行,这意味着哪个数据库有ORA-error
输出很小,我可以保持所有的行都是缓冲区,但行数不是常数。那么,有没有什么程序可以得到ORA所在的行号,然后打印上一行呢
这是我试过的密码#!/usr/bin/env python import sys, os, time, threading, subprocess,datetime,re command = 'su - emadba -c \'dgmgrl -silent sys/password@emadb "show configuration"\'' dgstatus = subprocess.Popen(command,stdout=subprocess.PIPE,shell=True) output = dgstatus.communicate()[0].strip().split("\n") prev = "" print prev for x in output: prev = x