我需要以下脚本来查看服务器上正在运行的进程,以用作以下硬编码变量(orauser
和orasid
)
#!/bin/bash
orauser="oraqa1"
orasid="ERPQA1"
source /home/$orauser/$orasid.env
su - ${orauser} << BOF 2>&1
export ORACLE_SID=$orasid
sqlplus /nolog << EOF 2>&1
connect / as sysdba
alter database begin backup;
exit;
EOF
BOF
做到这一点的最好方法是什么?
我可以通过运行获得我需要的实际输出ps
它将在开头显示orauser
( ) 并在结尾显示( ) (在最后一个下划线之后)。oradev
orasid
ERPDEV
例如
:~$ps -ef |grep pmon
oradev 22733 1 0 03:36 ? 00:00:05 ora_pmon_ERPDEV
如果失败,那么脚本将不会运行 - 这很好,因为这意味着该服务器上可能没有数据库......
最干净/最简洁的方法是什么?
答案1
像这样:
$ output="$(ps -ef |grep pmon)"
的输出ps -ef |grep pmon
将存储在名为 的变量中$output
。