셸 스 크 립 트 로 프로 세 스 가 존재 하지 않 으 면 시작 하 는 인 스 턴 스 가 있 는 지 모니터링 합 니 다.
3880 단어 shell프로 세 스 모니터링
#!/bin/sh
ps -fe|grep processString |grep -v grep
if [ $? -ne 0 ]
then
echo "start process....."
else
echo "runing....."
fi
#####processString 은 프로 세 스 특징 문자열 을 표시 합 니 다.유일한 프로 세 스 의 특징 문자열 을 조회 할 수 있 습 니 다.
존재 하 다
$? -원 0 은 존재 하지 않 습 니 다.$?-존재
정시 실행:
crontab -e
0 04,12,21 * * * /bin/bash /home/mysh/monitorprocess.sh
매일 저녁 4 시,낮 12 시,밤 21 시 에 검 측 합 니 다.
0 4,12 * * *
시간 과 월 주 를 나누다.
*04,12***이것 은 4 시 와 12 시 에 1 분 에 한 번 씩 실행 하 는 것 을 말 합 니 다.
0 4,12**4 시 12 시 0 분 에 한번 실행
확장 지식:
셸 의 if else 문법 및 크 고 작은 논리 표현 식:
if ....; then
....
elif ....; then
....
else
....
fi
대부분의 경우 조건 을 테스트 하기 위해 테스트 명령 을 사용 할 수 있다.예 를 들 어 문자열 을 비교 하고 파일 이 존재 하 는 지,읽 을 수 있 는 지 등 을 판단 할 수 있 습 니 다.보통'[]'로 조건 테스트 를 표시 합 니 다.이곳 의 빈 칸 을 주의 하 는 것 이 매우 중요 하 다.네모 난 괄호 의 빈 칸 을 확보 해 야 한다.
[-f"somefile"]:파일 인지 아 닌 지 판단
[-x"/bin/ls"]:/bin/ls 가 존재 하고 실행 가능 한 권한 이 있 는 지 판단 합 니 다.
[-n"$var"]:$var 변수 에 값 이 있 는 지 판단 합 니 다.
["$a"="$b"]:$a 와$b 가 같은 지 판단 합 니 다. -r file 사용 자 는 진짜 로 읽 을 수 있 습 니 다.
-w file 사용 자 는 진짜 로 쓸 수 있 습 니 다.
-x file 사용 자 는 진짜 로 실행 할 수 있 습 니 다.
-f file 파일 은 정규 파일 입 니 다.
-d file 파일 은 디 렉 터 리 가 진짜 입 니 다.
-c file 파일 은 문자 입 니 다.특수 파일 은 진짜 입 니 다.
-b file 파일 은 블록 특수 파일 이 진짜 입 니 다.
-s file 파일 크기 가 0 이 아 닐 때 진짜 입 니 다.
-t file 파일 설명자(기본 값 1)가 지정 한 장치 가 터미널 일 때 진짜 입 니 다.
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\##\#\#\#\##\#\##\#\##\##\##\###\###\#조건 선택 이 포 함 된 셸 스 크 립 트
변 수 를 포함 하지 않 는 작업 에 대해 간단 한 셸 스 크 립 트 는 일반적으로 감당 할 수 있 습 니 다.그러나 일부 의사 결정 임 무 를 수행 할 때 는 if/then 의 조건 판단 이 필요 하 다.셸 스 크 립 트 프로 그래 밍 은 비교 연산,파일 존재 여부 판단 등 을 포함 하여 이러한 연산 을 지원 합 니 다.기본 적 인 if 조건 명령 옵션 은 다음 과 같 습 니 다:-eq―두 매개 변수 가 같은 지 비교 합 니 다(예 를 들 어 if[2 Ceq 5])
-ne―두 매개 변수 가 같 지 않 은 지 비교
-lt―매개 변수 1 이 매개 변수 2 보다 작 을 지 여부
-le―매개 변수 1 이 매개 변수 2 보다 작 을 지 여부
-lt―매개 변수 1 이 매개 변수 2 보다 큰 지 여부
-ge―매개 변수 1 이 매개 변수 2 보다 큰 지 여부
-f―어떤 파일 이 존재 하 는 지 확인 합 니 다(예 를 들 어 if[-f"filename"])
-d--디 렉 터 리 가 존재 하 는 지 확인
거의 모든 판단 은 이런 비교 연산 자로 이 루어 질 수 있다.스 크 립 트 에서 자주 사용 하 는-f 명령 옵션 은 파일 을 실행 하기 전에 존재 하 는 지 확인 합 니 다.
파일 존재 여부 판단
#!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" [email protected] <error.log
fi
셸 기본 명령(1)ps aux 시스템 의 모든 프로 세 스 를 한 줄 씩 표시 합 니 다.
(2)grep"abc"는 표준 입력 에서 문자 흐름 을 읽 고 문자열"abc"를 포함 하 는 줄 을 출력 합 니 다.
(3)grep -v "acb" 표준 입력 에서 문자 흐름 을 읽 습 니 다.출력 은 문자열'abc'줄 을 포함 하지 않 습 니 다.
(4)wc -l 표준 입력 에서 문자 흐름 읽 기,출력 줄 수
예 를 들 어 프로 세 스 httpd 가 존재 하 는 지 확인 해 야 합 니 다.작업 절 차 는 다음 과 같 습 니 다.
(1)시스템 의 모든 프로 세 스 읽 기
(2)지정 한 프로 세 스 이름 을 포함 하 는 정보 가 존재 하 는 지 판단 합 니 다.
파이프 연결 을 통 해 명령 은 다음 과 같 습 니 다.
ps axu | grep "httpd" | grep -v "grep" | wc -l
모든 프로 세 스-->"httpd"를 포함 하 는 줄 가 져 오기-->grep 프로 세 스 정보 삭제-->출력 마지막 줄 수
명령 의 실행 결과 가 0 인지 판단 함으로써 프로 세 스 가 존재 하 는 지 알 수 있 습 니 다.
스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/sh
while true;do
count=`ps -ef|grep http|grep -v grep`
if [ "$?" != "0" ];then
echo ">>>>no httpd,run it"
service httpd start
else
echo ">>>>httpd is runing..."
fi
sleep 5
done
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.