[셸] apache 프로 세 스 를 검사 하 는 스 크 립 트

1612 단어 개인 총화
매일 apache 의 방문 로그 와 오류 로 그 를 날짜 에 따라 포장 백업 해 야 합 니 다.그래서 저 는 매일 저녁 apache 를 멈 추고 로 그 를 포장 하고 백업 하 며 삭제 한 다음 에 apache 프로 세 스 를 다시 시작 하 는 스 크 립 트 를 썼 습 니 다.결국 문제 가 생 겼 다.어떤 때 는 apache 가 다시 시작 하지 못 할 수도 있 습 니 다.구체 적 으로 어떤 원인 인지 나 도 모르겠다. 여러 번 조사해 보 았 지만 모두 공 을 세우 지 못 하고 돌 아 왔 다.
마침내 어느 날, 영감 이 떠 올 랐 습 니 다. 저 는 가장 멍청 한 방법 을 생각 했 습 니 다. 아파 치 프로 세 스 가 일 하고 있 는 지 정기 적 으로 확인 하 는 것 입 니 다.
#!/bin/bash
#~ file: /usr/local/bin/cwrun.cron
#~ power by [email protected]
#~ blog: http://blog.csdn.net/yagas


pro_total=$(ps -ef|grep httpd|wc -l)

if [ "$pro_total" -eq "1" ]; then
echo "web service is stoped."|mail -s "Warning: web service is stoped." [email protected]
/usr/local/apache/bin/apachectl -k start
fi
crontab -e


*/10 * * * * /usr/local/bin/cwrun.cron

그리고 어느 날 나 는 휴대 전화 에서 정말 이 메 일 을 받 았 다.급히 집 으로 달 려 가 서버 를 연결 해 서 비 스 를 점검 했다.apache 가 다시 시작 되 었 다 니.하하, 작은 공이 이 루어 졌 으 니 당분간 이렇게 하 자.나중에 높 은 사람 한테 물 어 볼 게 요.
다음은 로그 분할 스 크 립 트 입 니 다.
#!/bin/sh

#~ file: /usr/local/bin/loger.cron
#~ power by [email protected]
#~ blog: http://blog.csdn.net/yagas

#~ stop service
echo "httpd service stop..."
/usr/local/apache/bin/apachectl -k stop
sleep 2

#~ move log file
echo "move log file..."
mv /b2b/logs/*_log /tmp/logs/ > /dev/null 2>&1


#~ restart service
echo "httpd service start..."
/usr/local/apache/bin/apachectl -k start

YEAR=`date -d today +%Y-%m-%d`
tar -cjvf /backup/log/${YEAR}.tar.bz2 /tmp/logs
rm -f /tmp/logs/* > /dev/null 2>&1

echo "done";

좋은 웹페이지 즐겨찾기