• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

나스에 접속자가 없으면 꺼지게 만드는 쉘스크립트 만들기..

りんごといちご 411

0

14

제가 리눅스를 정말 하나도 모르다 보니 어떻게 해야 하는지 감이 안오네요.

 

불과 며칠전에  쉘스크립트라는 거를 알게되어서 

조금 공부해서 파일 옮기기, ffmpeg로  인코딩시키기

2가지 만들어봤습니다.

 

그리고 제게 필요한 기능이 나스 사용자가 없이 1시간이 경과되면 꺼지게 하는 기능입니다.

 

평상시에 나스를 꺼두고  원격으로 켜서 사용하고 있는데요

 

omv +포테이너 도커 + jellyfin,넥스트클라우드

이렇게 쓰고있습니다.

 

어떤 명령어를 이용해야 할지 모르겠는데  힌트만 좀  알려주시면

제가 찾아보겠습니다.

 

 

 

신고공유스크랩
14
profile image 1등
Intuit 2022.10.05. 18:04

간단한 방법은 없을것 같은데...

각 서비스별로 접속자 있는지 상시로 확인하다가 없으면 종료시켜야 하고

접속자 없을때 바로 꺼지면 또 아무도 접속 못하는 상황이 될테니까

접속자 없을때 일정시간 지나야 카운팅 되도록 해야하고...

그냥 쉘스크립트로는 안되고 데몬으로 올려야 할것 같은데 

쉽지는 않겠네요

りんごといちご 글쓴이 2022.10.05. 18:19
Intuit

답변감사합니다.

데몬이라는게 있는거군요.

크론탭+쉘 스크립트로 주기적으로 검사하는 방식으로 만들려했는데 데몬을 공부해야겠습니다.

profile image
달소 2022.10.05. 23:55
りんごといちご

시놀 쉘에서 사용자 체크가 가능하다면

현재 사용자와 마지막 로그인시간을 계산해서 끄면될거같은데,, 이게 가능한건지 모르겠네요,,

りんごといちご 글쓴이 2022.10.08. 19:00
달소

답변감사합니다! OMV를 쓰고있습니다. jellyfin이랑 nextcloud의 로그파일 읽어서 끄는 방향으로 만들어볼까합니다.

2등
뻘짓의초심자 2022.10.06. 09:30

전 문외한이지만 한 번 로직만 짜보자면...

 

 

1분마다 실행:

if 특정크기 이상의 output트래픽이 1시간이내로 발생:

pass

else:

서버종료

 

저도 쉘은 잘 몰라서 이 정도가 한계네요...

りんごといちご 글쓴이 2022.10.08. 19:02
뻘짓의초심자

답변감사합니다! 네트워크 트래픽을 이용하는 방법도 고려해봐야겠습니다. 제가 리눅스 명령어도 문법도 아직 모르는 게 많아서 특정 프로세스(jellyfin 등)의 트래픽만 읽어들이는 명령어를 혹시 알고계시나요?

뻘짓의초심자 2022.10.08. 19:22
りんごといちご

원하시는 정보일지는 모르겠으나 이런 것도 있네요

https://askubuntu.com/questions/105536/tool-to-shutdown-system-when-there-is-no-network-traffic

아마 여기서 interface를 jellyfind에 해당하는 도커 인터페이스로 수정하면 되지 않을까 하네요...

저도 문외한인지라 테스트가 필요하실 듯 합니다.

profile image 3등
화정큐삼 2022.10.06. 22:56

제가 작년에 비슷한 스크립트를 작성해서 2CPU 쪽 강좌란에 올렸던 내용이 있는데요.

제가 한번 만들어 드려 볼까요?

약간 응용하면 될것 같기도 한데요.

https://www.2cpu.co.kr/lec/3995

profile image
화정큐삼 2022.10.07. 01:28
화정큐삼

위 강좌 내용은 한번 먼저 살펴보시고 아래 응용한 이 스크립트로 사용해 보십시요.

이 스크립트는 일정한 주기로 스케줄러에 사용자 정의 스크립트로 등록하고 주기적으로 불러주셔야 합니다.

실행 커맨드는 아래처럼 합니다.

bash /volume1/shell/poweroff_if_noconnection.sh

그리고 로컬에 sudo 접속은 sudores 처리까지 해주셔야 한번에 암호 묻지 않고 종료가능할것 같습니다.

 

vi /volume1/shell/poweroff_if_noconnection.sh

 

#!/bin/sh

cnt=$(sqlite3 /volume1/log/SYNOSYSLOGDB__LOCALARCH.DB "select count(*) as cnt from logs a where datetime(ldate,ltime) between datetime('now','localtime','-1 hours') and datetime('now','localtime') and prog in ('auth','Connection');")

echo "$cnt"

if [ "$cnt" -eq "0" ] ; then

    echo "1시간내 접속자 없음, NAS를 종료합니다."

    sudo "poweroff"

else

    echo "1시간내 접속자 존재"

fi

 

profile image
화정큐삼 2022.10.07. 01:35
화정큐삼

sudores 는 아래처럼 만듭니다.

 

(로그인한 계정에서 그대로 입력합니다. root의 /etc/sudoers 파일에 암호입력없이 로그인이 되도록 1줄 추가됩니다.)

 

echo -e "\n$USER ALL=(ALL) NOPASSWD: ALL\n" | sudo tee -a /etc/sudoers

 

(설정이 잘 적용되었는지 확인합니다)

 

sudo -l

 

— 결과로 아래 라인이 더 추가되어 보여야 합니다.

 

(ALL) NOPASSWD: ALL

 

(sudo 접속 시험을 합니다.)

 

sudo -i

りんごといちご 글쓴이 2022.10.08. 18:57
화정큐삼

답변 감사합니다! 시놀로지는 아니고 OMV(데비안) 쓰고 있어요. 하지만 참고해보겟습니다. . 지금 두가지 방법 고려해보고있는데 젤리핀이랑 넥스트클라우드 로그파일에서 접속로그랑 시간 추출해서(tail이랑 grep명령어 사용) 1시간동간 갱신이 없으면 꺼지는 방법이랑 프로세스별 CPU점유율 읽어들여서 일정시간 이상 일정퍼센트 점유율을 쓰지않고 1시간 경과되면 shutdown명령어 날리는 방법 두가지 고려하고 있습니다.

profile image
화정큐삼 2022.10.07. 09:11

이 방법은 시놀로지를 사용하신다는 가정하에 로그 DB 파일을 활용하는건데요.

시놀로지가 아니라면 더 연구가 들어가야 합니다.

시놀로지 사용하고 계신것 맞나요?

그리고 기본설치되어 있는 로그센터는 기본기능만 있어서 아카이브 설정을 하시려면

패키지 관리자에서 로그 센터 고급기능을 한번더 설치해 주셔야 합니다.

로그 센터의 개요부분만 봐도 왜 저렇게 쿼리 하는지 이해가 되실겁니다.

https://blog.naver.com/pksl7890/222484376336

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
정보 Proxmox) VMware ESXi 기반 가상 머신 마이그레이션에 사용할 수 있는 새로운 가져오기 마법사 4 달소 9시간 전22:48 54 +1
정보 안녕하세요! 새로 가입했습니다. 5 Razorbacks 14시간 전18:06 76 +1
정보 서버포럼 가입인사겸 저의 홈서버를 소개합니다!! 9 툭툭이 21시간 전11:14 403 +10
3778 오픈소스
image
달소 9시간 전22:53 70 0
3777 정보
image
달소 9시간 전22:48 54 +1
3776 정보
image
Razorbacks 14시간 전18:06 76 +1
3775 질문
normal
맛밥 17시간 전15:34 174 0
3774 정보
image
툭툭이 21시간 전11:14 403 +10
3773 질문
normal
유니파트 1일 전22:09 198 0
3772 질문
image
반투검스 1일 전12:46 71 0
3771 질문
normal
니즛 2일 전00:37 344 0
3770 잡담
image
주차장 2일 전17:47 471 +1
3769 질문
image
양미 2일 전11:16 218 0
3768 질문
normal
주차장 3일 전23:44 173 0
3767 질문
image
surno 4일 전00:56 123 0
3766 질문
image
TANG 4일 전19:14 405 0
3765 질문
image
게르노 5일 전23:55 463 0
3764 질문
normal
very 5일 전09:57 209 0
3763 질문
normal
ljr10 5일 전09:11 86 0
3762 질문
normal
very 6일 전18:04 242 0
3761 가이드
normal
minis 6일 전14:20 156 0
3760 잡담
normal
아나나나나다 24.03.21.12:58 373 0
3759 질문
normal
하핳 24.03.20.14:19 205 0