스토리지 서버 트러블 슈팅 쉘 스크립트
시나리오
- 스토리지 서버의 디스크가 풀로 찼다.
find
- find (옵션) 찾기시작할패스 익스프레션
- find ./ -name tetsfile.txt (이름으로 파일찾기)
- find ./ -mtime -10 ( 현재 시각으로부터 10일 이전에 수정이 이루어진 파일 찾기)
- find ./ -mtime +10 ( 현재 시각으로부터 10일 이후에 수정이 이루어진 파일 찾기)
찾은 파일을 출력뿐만아니라 처리까지 할 수 있다.
find ./ -mtime +3 -exec rm {} \ ;
- 역슬레시와 세미콜론으로 find 명령어를 끝냄
- 명령어는 rm 말고도 여러가지 다 됨
- 명령어 입력 후 -c 옵션을 주면 다른 명령어 사용 가능
- find ./ -mtime +3 -exec sh -c "rm {}" \;
예전에 만들었던 백업 정책에 내용 추가
vi web_backup.sh & db_backup.sh (cent1 cent2 서버)
#!/bin/bash
set -exuo pipefail <<-- cent1, 2 둘다 추가 , 완료 후 주석처리
##변수설정
HOST="$(/usr/bin/hostname)"
LOG="/root/backup.log"
PUSH="/root/SHELL/monitor/tel_push.sh"
DATE="$(/bin/date +%Y.%m.%d)"
--- 중략 ---
##---로그 기록시작 ({중괄호}로 시작과 끝을 정의함)
{
##백업 시작 시간
/bin/echo
/bin/echo "=== 백업시작 시간"
/bin/date
/bin/echo
/bin/echo
/bin/echo "=== 이전 백업파일 삭제 : "
/usr/bin/find ${BAK_PATH} -mtime +7 -exec sh -c "ls -a {}; rm {}" \;
/bin/echo
--->> 추가
##백업
/usr/bin/tar czpPf "${BAK_FILE}" ${BAK_LIST} <-- ${BAK_LIST}에는 " "를 안붙인 이유 : 위에 변수선언할 때 이미 " "를 붙혀줬기때문에
p : 퍼미션유지 P : 절대경로유지
--- 생략 ---