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

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

りんごといちご 414

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 ssd 인식이 갑자기 안됩니다 고장인걸까요? 3 kmw_ 17시간 전09:37 112 +1
질문 ZFS 풀에서 계속 에러가 뜹니다 3 bass9030 1일 전00:43 76 +1
잡담 백업 주기와 방법에 대한 고민 11 칼룬 1일 전18:12 207 +1
3845 질문
normal
감자칩 8시간 전18:55 65 0
3844 질문
normal
숲형 15시간 전11:21 184 0
3843 질문
image
kmw_ 17시간 전09:37 112 +1
3842 질문
normal
bass9030 1일 전00:43 76 +1
3841 잡담
normal
칼룬 1일 전18:12 207 +1
3840 질문
normal
늘맑음 1일 전15:10 176 +1
3839 질문
image
게르노 1일 전12:26 66 0
3838 잡담
normal
bong90a 1일 전10:50 339 0
3837 후기
image
추주비 1일 전10:33 251 +1
3836 질문
normal
angrynerd 2일 전14:11 402 0
3835 오픈소스
image
달소 4일 전23:00 370 0
3834 후기
normal
N4100 4일 전18:56 419 +4
3833 가이드
file
펜타네스트 4일 전18:39 285 +1
3832 질문
image
똥쓰똥쓰 4일 전17:02 269 0
3831 후기
image
동도리군 4일 전10:27 309 0
3830 질문
image
칼룬 5일 전11:56 77 0
3829 질문
image
초보나스 5일 전11:13 324 0
3828 질문
image
kmw_ 6일 전22:29 208 0
3827 후기
image
달소 6일 전21:35 287 +1
3826 질문
normal
ljr10 6일 전21:33 177 0