[Oracle Cloud] 아무도 로그인하지 않은 서버를 자동으로 중지
6114 단어 오라클쉘 스크립트oraclecloudoci
1. 본 기사에 대해서
개발 · 검증 등의 용도로 클라우드 환경을 준비하고 있으며,
요금을 절약하기 위해 잠시 아무도 서버에 로그인하지 않은 경우
자동으로 중지하는 스크립트를 작성해 보았습니다.
과금액을 절약한다는 관점에서는 9:00~17:00 등 정각으로 기동 정지하도록
설정하는 것도 손입니다만, 좀 더 유연하게 대응하고 싶을 때에 사용할 수 있을지도 모릅니다.
2. 전제
Unix 기반 OS가 설치된 서버(인스턴스)여야 합니다.
OCICLI (Oracle Cloud 명령 행 인터페이스)가 대상 서버에
설치된 것.
· [참고] OCICLI 설정 절차
Oracle Cloud : 명령 줄 인터페이스 (CLI)를 설치하려고했습니다.
3. 스크립트
로그인한 사용자 수를 정기적으로 확인하고,
지정된 시간 로그인이 없으면 중지합니다.
백그라운드에서 흘려 놓아 사용하는 이미지입니다.
"DEST_OCID"에 대상 서버를 식별하기 위한 ID를 지정합니다.
· Compute 인스턴스용
#!/bin/bash
# 対象インスタンスOCID
DEST_OCID="ocid1.instance.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxx"
# シャットダウンまでの無ログイン時間(秒)
SHUTDOWN_THRESHOLD=3600
# ログインユーザ数チェック間隔(秒)
CHECK_INTERVAL=600
# ログインユーザ監視処理
while [ $((COUNT * CHECK_INTERVAL)) -lt ${SHUTDOWN_THRESHOLD} ];
do
LOGIN_USER_COUNT=`who | wc -l`
if [ ${LOGIN_USER_COUNT} = 0 ]; then
COUNT=$(( COUNT + 1 ))
else
COUNT=0
fi
sleep ${CHECK_INTERVAL}
done
# インスタンス停止コマンド発行
echo "閾値に達したためインスタンスを停止します"
oci compute instance action --instance-id ${DEST_OCID} --action stop
· Database Cloud용
#!/bin/bash
# 対象インスタンスOCID
DEST_OCID="ocid1.dbnode.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxx"
# シャットダウンまでの無ログイン時間(秒)
SHUTDOWN_THRESHOLD=3600
# ログインユーザ数チェック間隔(秒)
CHECK_INTERVAL=600
# ログインユーザ監視処理
while [ $((COUNT * CHECK_INTERVAL)) -lt ${SHUTDOWN_THRESHOLD} ];
do
LOGIN_USER_COUNT=`who | wc -l`
if [ ${LOGIN_USER_COUNT} = 0 ]; then
COUNT=$(( COUNT + 1 ))
else
COUNT=0
fi
sleep ${CHECK_INTERVAL}
done
# インスタンス停止コマンド発行
echo "閾値に達したためインスタンスを停止します"
oci db node stop --db-node-id ${DEST_OCID} --action stop
4. OCID 확인 방법
· Compute 인스턴스의 경우
Oracle Cloud 관리 콘솔 화면에서
[컴퓨트]⇒[인스턴스]⇒[인스턴스 세부정보]
· Database Cloud의 경우
[Oracle Database]⇒[베어 메탈, VM 및 Exadata]⇒[DB 시스템]⇒[DB 시스템 상세]⇒[노드]
5. 주의점
실제로 사용하는 경우 systemd 등으로 스크립트를 서비스합니다.
서버 시작과 함께 스크립트가 실행되도록 할 것이라고 생각합니다.
이 경우 로그인하지 않은 시간의 임계 값을 실수로 극단적으로 짧게 설정하면
서버 기동⇒스크립트 자동 기동⇒즉시 임계값 도달⇒정지 처리가 되어
로그인할 수 없어 복구가 곤란해질 우려가 있으므로 주의가 필요합니다.
6. 참고
Oracle Cloud Infrastructure CLI Command Reference
Reference
이 문제에 관하여([Oracle Cloud] 아무도 로그인하지 않은 서버를 자동으로 중지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kyata_01/items/ee3f810ff50507f5f868텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)