使用shell脚本

时间:2017-07-19 04:15:15

标签: linux bash oracle shell ksh

我正在研究shell脚本,当一个语句被识别为长时间运行时,我们必须在OS上获取PID,确保它不是程序的主要进程。(例如:Oracle)。检查顶部并终止匹配的进程,稍后我们可以使用脚本检查数据库是否存在长时间运行的会话。杀死程序的特定长时间运行的PID后,shell脚本需要向用户发送邮件信息。

[oracle@jumbox ]$ps au |grep oracle | awk 'print {$2}' |uniq
10020
15678
17345
18736
18856

我的问题是我没有看到top命令中列出的任何上述过程,那么我应该如何验证脚本中的这些非现有进程?或者是否有更好的一个班轮或代码片段可以做到这一点?任何建议都非常感谢。

由于

1 个答案:

答案 0 :(得分:0)

从服务器中杀死一个会话是非常危险的,它可能导致数据模糊,甚至表中的行不可读。通过在<xsl:template match="OAuth"> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <soap:Body> <xsl:element name="ng3:OAuth"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:element> </soap:Body> </soap:Envelope> </xsl:template> 视图中检查相同内容,可以更好地终止长时间运行的会话。在这里,您可以检查会话是否处于非活动状态或等待另一个会话完成。

要使用v$session来终止会话,可以在alter system kill session 'sid,serial#' immediate;视图中找到sid和serial#。要获取会话的服务器PID,您可以使用此查询查询v$sessionv$process个视图:

v$session