Você pode precisar criar seu bash_profile ou bash_rc no topo do seu script
no ubuntu
source /home/<user>/.bash_profile
alguns outros linuxes
source /home/<user>/.bash_rc
service jbossas status
- > comando irá verificar o status do jbossas
O jbossas (PID) está em execução (se o jbossas estiver em execução)
jbossas é parado (se o jbossas for parado)
#!/bin/ksh
#set -x
OUT_LOG="$1"
stus=$(service jbossas status)
var=$(ps -ef | grep -i '[/]jboss')
hname=$(hostname)
if [ -z "$var" ]; then
echo "service jbossas status" >>$OUT_LOG
echo "$stus" >>$OUT_LOG
mail -s "Please check for possbile impact $(stus)" [email protected] << $OUT_LOG
else
echo "'$stus'"
fi
NOTA: O processo do JBOSS não está rodando no servidor, então oo / p será o jboss parado.
Se eu executar o script manualmente no shell (prompt cmd da tela balck)
./jboss_status.ksh
Estou recebendo o e-mail com o assunto e o script abaixo funcionando bem
"Por favor, verifique o possível impacto que o jbossas está parado"
mas quando eu agendar no cron
* * * * * /aaa/jboss_status.ksh > /aaa/jboss_status.ksh.error 2>&1
Estou recebendo o e-mail com o assunto abaixo "Por favor, verifique o possível impacto" NOTA: "jbossas está parado" não está sendo impresso no final do assunto
Ao obter erro abaixo no arquivo de erro criado pelo cron
/aaa/jboss_status.ksh[20]: service: not found [No such file or directory]
O script está executando bem no cron, mas a saída retornada pelo
command : service jbossas status
op: jboss stopped
não está sendo impresso no assunto
Você pode precisar criar seu bash_profile ou bash_rc no topo do seu script
no ubuntu
source /home/<user>/.bash_profile
alguns outros linuxes
source /home/<user>/.bash_rc
Você verificou a variável PATH para o usuário que está executando o cron, ele deve ter o caminho para o script usado ou suas dependências. Compare os caminhos com:
echo $PATH
sob o usuário que você executa o script manualmente, e com o usuário que executa o script no cron.