Assim:
$ output="$(ps -ef |grep pmon)"
A saída de ps -ef |grep pmon
será armazenada em uma variável chamada $output
.
Eu preciso do script a seguir para examinar os processos em execução no servidor a serem usados como as variáveis codificadas abaixo ( orauser
e 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
Qual é a melhor maneira de fazer isso?
Eu posso obter a saída real de que preciso executando ps
que mostrará o orauser
( oradev
) no início e o orasid
( ERPDEV
) no END (após o último sublinhado).
por exemplo
:~$ps -ef |grep pmon
oradev 22733 1 0 03:36 ? 00:00:05 ora_pmon_ERPDEV
Se falhar, o script não será executado - o que é bom porque isso significa que provavelmente não há banco de dados nesse servidor ...
qual é a maneira mais limpa / clara de fazer isso?
Assim:
$ output="$(ps -ef |grep pmon)"
A saída de ps -ef |grep pmon
será armazenada em uma variável chamada $output
.
Tags scripting