crontab 에서 스 크 립 트 실행 오류 가 발생 하여 서 비 스 를 다시 시작 할 수 없습니다.

작업 중 에 문제 가 발생 했 습 니 다. 시스템 서비스의 모니터링 스 크 립 트 를 할 때 수 동 으로 모니터링 스 크 립 트 를 실행 합 니 다. 서비스 가 끊 겼 을 때 서 비 스 를 다시 시작 할 수 있 지만 crontab 로 서비스 가 끊 긴 것 을 자동 으로 감지 하고 서 비 스 를 다시 시작 할 때 서 비 스 를 다시 시작 할 수 없습니다.해결 방법, 권한, 경로 에 문제 가 없 는 많은 것 을 찾 았 습 니 다. 마지막 으로 crontab 의 환경 변 수 를 찾 으 려 면 스 크 립 트 에 표 시 된 로 딩 이 있어 야 스 크 립 트 가 올 바 르 게 실 행 될 수 있 습 니 다. 환경 변 수 를 불 러 올 수 있 는 몇 가지 방법 을 소개 합 니 다.
다음은 가장 자주 사용 하 는 환경 변 수 를 불 러 오 는 방법 을 소개 합 니 다. 그리고 crontab 에서 인 자 를 추가 하거나 source 를 사용 하 는 저 는 다음 과 같이 환경 변 수 를 넣 는 것 이 간결 하고 편리 하 다 고 생각 합 니 다.
step1:
명령 줄 에 입력: env | grep PATH
다음 에 복사 한 PATH 경로:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mongodb/bin:/root/bin
setp 2: 이 path 경 로 를 셸 스 크 립 트 에 추가 한 다음 export PATH 로 다음 과 같이 불 러 옵 니 다.
#!/bin/bash
# File: check.sh
# PATH: /letv/dist/recommendation_service

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mongodb/bin:/root/bin
export PATH

host=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
dir="/letv/dist/recommendation_service"
binFile="recommendation_service_d"
numProcess=`ps aux | grep "recommendation_service_d" | grep -v grep | wc -l`
checkTime=`date "+%Y-%m-%d %H:%M:%S"`

echo $numProcess

cd $dir
if [[ $numProcess -eq 1 ]];then
        echo $checkTime "recommendation_service for daizong status OK" >> check.log
else
        echo $checkTime "recommendation_service for daizong status Error" >> check.log
        cd $dir
        service recommendation_rest_service restart
        ./sendmail.py check.log [email protected],[email protected] "$checkTime recommendation_service on server $host was stopped unexpectedly"
fi

좋은 웹페이지 즐겨찾기