Autor Tópico: Onde declarar variáveis que precisam subir com o Boot?  (Lida 1727 vezes)

Offline mlrmelo

  • Usuário Ubuntu
  • *
  • Mensagens: 25
    • Ver perfil
Onde declarar variáveis que precisam subir com o Boot?
« Online: 04 de Outubro de 2012, 10:15 »
Vamos lá...
Estou configurando o Nagios3 sobre o Ubuntu 12.04 para monitorar servidores e serviços.
Dentre os serviços, preciso monitorar o Listener e as Instances Oracle 9i.
Faço isso via "check_oracle".
O problema está em que as variáveis de ambiente relativas ao Oracle (ORACLE_HOME, TNS_ADMIN, etc...) não estão sendo enxergadas pelo sistema no momento em que o Nagios sobe.
Já tentei declará-las nos seguintes arquivos:
/etc/profile
/etc/rc.local
/etc/bash.bashrc
/etc/enviroment (neste, ele acabou me impedindo de logar na interface gráfica)
/root/.bashrc
~/.bashrc
Se eu abrir o shell (console) e fizer "/etc/init.d/nagios3 restart" tudo funciona perfeitamente. Mas só depois que eu faço isso, se não, ele não consegue enxergar as variáveis.
O estranho é que se abrir o console e pedir pra ver as variáveis (antes de restartar o Nagios), elas estão lá mas o Nagios não enxerga!
Tentei até mesmo, no /etc/rc.local, após os export das variáveis, fazer o restart do Nagios mas não resolveu!
Estou há 4 dias pegado com esse problema!
Então, onde declaro essas variáveis pra que elas sejam lidas no boot do sistema? Vale lembrar que o elas precisam ser lidas antes de qualquer login, pois estarão em servidor capaz de se levantar sem a intervenção humana, em caso de queda de energia, por exemplo, e não podem esperar até que alguém chegue pra logar e colocar o nagios de volta no ar (funcionará como um serviço).

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Onde declarar variáveis que precisam subir com o Boot?
« Resposta #1 Online: 04 de Outubro de 2012, 11:51 »
Há um script que define todas as variáveis do Oracle, não? Talvez um "orarun" ou "orainit.sh". [Se não houver, crie-o. Fica mais simples de resolver]

Coloque uma chamada desse script no próprio script de inicialização do nagios, supondo que não seja um "upstart script".
Você vai adicionar uma linha parecida com isso ao arquivo:

Código: [Selecionar]
. /opt/oracle/orainit.sh

Em tempo, teve muita dificuldade pra instalar o Oracle no Ubuntu?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline mlrmelo

  • Usuário Ubuntu
  • *
  • Mensagens: 25
    • Ver perfil
Re: Onde declarar variáveis que precisam subir com o Boot?
« Resposta #2 Online: 04 de Outubro de 2012, 16:59 »
Há um script que define todas as variáveis do Oracle, não? Talvez um "orarun" ou "orainit.sh". [Se não houver, crie-o. Fica mais simples de resolver]

Coloque uma chamada desse script no próprio script de inicialização do nagios, supondo que não seja um "upstart script".
Você vai adicionar uma linha parecida com isso ao arquivo:

Código: [Selecionar]
. /opt/oracle/orainit.sh

Em tempo, teve muita dificuldade pra instalar o Oracle no Ubuntu?

Cara...
Tive e não tive...
Explico:
Ralei muito pra conseguir instalar, sem sucesso o client. Baixei várias versões do client, mas nenhuma funcionava.
Aí chutei o balde, apaguei todos os arquivos que tinha instalado e mandei procurar o tnsping, pra ver se não tinha feito nenhuma besteira.
Qual não foi a minha surpresa quando vi que um colega meu tinha feito backup da máquina dele no meu HD e lá tinha uma instalação do Oracle (estava marcada como server, mas sei que era client). copiei do backup dele para os meus diretórios, setei as variáveis e não é que funcionou? Nem mexi mais!!! :P
Não sei, não, mas acho que os client que estão disponíveis no site da oracle estão faltando algum componente de rede, pois ele simplesmente dizia que não conseguia ler o TNSNAMES.ORA, embora estivesse tudo lá direitinho... Também pode ser questão de versão (o meu server é 9i e estava tentando usar os clients mais novos, tipo 11.x. Esse que funcionou era 10.<alguma coisa>.

Agora é tentar fazer isso que você sugeriu pra ver se funciona