뽐뿌

NAS포럼 입니다.

NAS, 자작 NAS, 클라우드, 웹하드 등 네크워크 대용량 저장 장치와 관련된 정보를 공유하는 공간입니다.
시놀로지 내장 SQLITE3를 이용한 백업결과 로그 TABLE 확인후 원격서버 종료 스크립트 작성방법
분류: 정보
이름: 가영부친


등록일: 2021-06-09 11:59
조회수: 276 / 추천수: 0







공유폴더 동기화 처리가 성공완료된 결과를 로그 센터를 통해 DB파일로 저장하고 

이 내용을 시놀로지에 내장된 SQL LITE 3 쿼리를 사용해서

가져올 수 있는 스크립트입니다.


정상 BACKUP이 확인된 이후엔 원격 NAS서버를 SSH 명령을 통해 종료시킬 수 있습니다.


방법은 아래 내용처럼 로그 센터의 아카이브 설정에서 아카이브용 저장소 대상에

log db 파일을 내려 받을수 있는 적당한 폴더 (제 경우는 /volume2/log) 로 위치선택하고

[V]위에 지정된 저장소 위치에 로컬 로그를 아카이브 합니다.  에 체크를 해주고 적용합니다.


이 DB 파일은 SQL LITE용 DB 파일로 아래 커맨드에 보이시는 sqlite3의 실행과 위에 아카이브로 지정한 DB파일 오픈, 

그리고 금일 정상 동기화 처리 성공한 내용을 SELECT COUNT 하는 쿼리를 가지고 결과를 알 수 있습니다.


r 변수에 1 이라는 값이 출력되면 정상수행이 완료 되었다는 의미 이고 백업은 하루에 1회만 한다는 가정입니다.

백업의 횟수가 더 많은 경우는 아래 스크립트의 쿼리와 IF 조건등을 적절히 수정하셔야 합니다.

시놀로지 공유폴더중 shell 폴더에 vi 에디터를 이용해 아래처럼 shell 스크립트를 생성합니다.


vi /volume2/shell/poweroff_af_sfsync.sh


r=$(sqlite3 /volume2/log/SYNOSYSLOGDB__LOCALARCH.DB "select count(*) as cnt from logs a where host = 'NAS4' and ldate = date('now','localtime') and prog = 'NetworkBackup' and instr(msg,'Shared Folder Sync finished to sync task') > 0;")

echo $r

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

   echo "백업 미종료 or 오류"

else

   echo "백업 정상종료, NAS5를 종료합니다. "

   ssh -p 32022 admin@192.168.35.11 sudo "poweroff"

fi


위 ssh 로 원격서버가 자동 종료되도록 하려면 ssh-keygen을 통한 pub key 생성복사가 필요합니다. 이부분은 강좌란 바로 직전글인 아래 링크를 참조하시기 바랍니다.


http://www.ppomppu.co.kr/zboard/view.php?id=nas&no=42176

 

 


완성된 스크립트는 작업스케쥴러등에 등록하시고 적절한 주기를 주시고 계속 체크하도록 해서 백업이 성공되면 원격서버 종료가 되도록 해주시면 됩니다.

 

감사합니다.



추천 0

다른 의견 0

  • 욕설, 모욕적인 표현 등 상처줄 수 있는 댓글은 삼가주세요.
이모티콘 사진  익명요구    다른의견   
△ 이전글▽ 다음글