service jbossas status
-> 명령은 jbossas 상태를 확인합니다.
jbossas(PID)가 실행 중입니다(jbossas가 실행 중인 경우).
jbossas가 중지되었습니다(jbossas가 중지된 경우).
#!/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
참고: JBOSS 프로세스가 서버에서 실행되고 있지 않으므로 작업이 jboss 중지됩니다.
쉘에서 스크립트를 수동으로 실행하는 경우(검은색 화면 cmd 프롬프트)
./jboss_status.ksh
다음 제목이 포함된 이메일을 받았는데 스크립트가 정상적으로 실행되었습니다.
"jbossas 중지로 인해 발생할 수 있는 영향을 확인하십시오."
하지만 cron에서 일정을 예약하면
* * * * * /aaa/jboss_status.ksh > /aaa/jboss_status.ksh.error 2>&1
다음과 같은 제목의 메일을 받았습니다. "가능한 영향을 확인하십시오" 참고: "jbossas가 중지되었습니다"는 제목 끝에 인쇄되지 않습니다.
cron으로 생성된 오류 파일에서 다음과 같은 오류가 발생합니다.
/aaa/jboss_status.ksh[20]: service: not found [No such file or directory]
스크립트는 cron에서 잘 실행되지만 출력을 반환합니다.
command : service jbossas status
op: jboss stopped
제목에 인쇄되지 않음
답변1
스크립트 상단에 bash_profile 또는 bash_rc를 가져와야 할 수도 있습니다.
우분투에서
source /home/<user>/.bash_profile
다른 리눅스
source /home/<user>/.bash_rc
답변2
cron을 실행하는 사용자의 PATH 변수를 확인했습니까? 사용 중인 스크립트에 대한 경로나 해당 종속성이 있어야 합니다. 경로 비교:
echo $PATH
스크립트를 수동으로 실행하는 사용자와 cron에서 스크립트를 실행하는 사용자 아래에 있습니다.