말 그대로다.

DB LOCK에 관하여 슬랙 알람을 보내야 한다.

 

기존에 jsp로 알람을 보내는 사이트가 있고, LOCK 관련 정보를 불러오는 쿼리는 구현되어 있다.

이것을 이용하여 고대로 jsp에서 쉘 스크립트를 실행하여 슬랙으로 알람을 받을 수 있게 해야한다.

 

우선 jsp 파일 상단에 저것들을 import 해준다.

사용할 변수들을 중간에 선언 해주고

 

sql 쿼리도 실행 해준다.

쿼리 결과는 rs1에 컬럼이름과 해당 데이터가 키 -값의 쌍으로 매핑 되어 있다고 한다.

락 발생 이후 경과 시간에 따라 다른 동작으로 구분 하였으며 60초에서 70초 사이에 슬랙 알람을 보내도록 하였다.

 

60초에서 70초 사이로 한 이유는 윂페이지가 리프레쉬 하는 간격이 가끔 안맞으면 61초에 리프레쉬 되어 알람이 울리지 않기 때문에 시간 간격을 10초로 하였다.

 

그러면 문제가 발생하는데 10초 동안 계속해서 스크립트가 실행된다.

 

그래서 스크립트에서 락을 걸어 한 번만 10초 동안 동작하게 하여 60초 70초 사이에 한 번만 동작하게 한다.

 

:ㅂ

 

 

 

매개변수를 받아와서 슬랙에 알람을 보내고 10초 동안 일시정지 하여 10초 안에 한 번만 동작하게 한다.

파일에 락을 걸어서 한 번만 스크립트가 실행되게 하는 방식이다.

 

exec 200>$LOCK_FILE
flock -n 200 || exit 1

 

파일 디스크립터 200을 LOCK_FILE에 할당한다.

(파일이 없는 경우 생성, 혹시 몰라 touch로도 파일 생성 하도록 작성)

flock으로 200 디스크립터가 할당된 파일에 락을 걸어주고

-n 옵션으로 다른 프로세스에서 200 디스크립터로 접근 하면 락을 얻지 못하게한다.

 

락을 얻은 후 스크립트가 이어서 실행되며 슬랙 알람 전송 후 sleep 10으로 10초동안 일시정지 시켜

10초 동안 한 번만 실행되도록 한다.

 

이후 flock -u 200으로 200 디스크립터에 적용된 lock을 해제하고

락 파일 삭제

 

flock

 

 

 

 

 

 

 

 

'etc' 카테고리의 다른 글

랜섬웨어  (0) 2025.10.13
mixed content 에러  (0) 2024.04.30

+ Recent posts