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
。