Back End/Linux
[Linux] 특정 명령어를 특정 주기로 실행하기
염소
2021. 9. 2. 20:50
반응형
■ 개요
프로젝트 진행 중 특정 쓰레드가 무한 루프에 같혀서 로그 파일의 크기가 엄청 커졌다.
운영중이라 앱을 재시작할 수 없어 5분마다 한번 로그 파일을 삭제하는 조치가 필요했다.
그때 사용한 임시 조치방편을 포스팅한다.
이런 일이 없는 것이 제일 좋으나 어떤 일이 일어날지 모르기 때문에 ..
■ 본문
쉘 스크립트로 무한루프 파일을 만들고 sleep으로 특정 시간마다 명령어가 실행되도록 처리했다.
일단 vi편집기를 통해 autoRemove.sh 파일을 생성한다.
vi autoRemove.sh
파일의 본문 내용은 아래와 같이 작성한다.
#!/bin/bash
while :
do
ls -lh /logs | grep wrapper_20210902 -- 파일 용량 체크를 위해 출력
cat /dev/null > /logs/wrapper_20210902.log -- 특정 파일 null로 덮어쓰기
ls -lh /logs | grep wrapper_20210902 -- 파일 용량 체크를 위해 출력
echo "Log Deleted"
sleep 300 -- 5분 대기
done
파일을 저장한 후 실행한다.
실행 권한이 없으면 chmod를 통해 파일 권한을 변경한다.
chmod 777 ./autoRemove.sh
자 이제 실행시키면 5분마다 특정 파일 내용을 지워주는 것을 확인할 수 있다.
종료하고 싶다면 ctrl + c를 이용해 종료하면 된다.
끝
반응형