오늘은 Synology NAS 에서 스크립트를 실행하는 방법에 대해 소개하려 합니다. 


저는 Synology NAS 를 주로 파일 다운로드 용도로 사용하는데~ 


다운로드 한 파일들 중에서 패턴이 있는 것들은 스크립트를 주기적으로 실행해서 자동으로 분류 하도록 합니다.


윈도우의 예약 작업, 리눅스의 Cron 등과 같이 Synology NAS 에는 "작업 스케쥴러"가 있습니다.


다음과 같이 제어판에서 "작업 스케줄러"를 실행하시면 됩니다. 

다음으로 당연히 스크립트가 있어야 겠고~


제가 주기적으로 실행하는 스크립트 명은 modify_files.sh 입니다. 제 home 폴더에 들어 있고 해당 파일의 절대 경로를 알아야 합니다. 


Synology NAS 의 File Station 에서 해당 파일을 클릭한 후에 오른쪽 클릭 하고 속성을 보면 위치 라는 부분에도 나오고 


터미널을 사용하시는 분들은 다음과 같이 타이핑 하면 절대 경로가 나옵니다.

realpath 파일명

ex) realpath modify_files.sh

이렇게 절대 경로를 알았다면 이제 예약된 작업과 트리거된 작업이 있는데~ 

예약된 작업은 시간에 따라 주기적으로 실행하는 것을 의미하고 트리거된 작업은 Synology NAS 를 시작 할때 또는 종료 할때 실행 되도록 하는 것을 의미 합니다.


저는 modify_files.sh 를 주기적으로 실행할 것이므로 "예약된 작업" 으로 만듭니다. 그리고 사용자 정의 스크립트를 선택합니다. 


다음으로 작업생성의 일반 탭에서 작업의 이름을 설정합니다. 본인이 원하는 이름으로 설정하면 됩니다. 사용자는 제 경험상 그냥 root 로 설정하는게 좋을 것 같습니다. 


다음으로 스케줄 탭에서 실행 주기를 설정 합니다. 


다음으로 작업 설정 탭에서 사용자 정의 스크립트 부분에 아까 위에서 알아낸 스크립트의 절대 경로를 넣습니다. 


이제 다 됐습니다. 


확인을 누른 후에 활성화 됨에 체크가 되어 있다면 정상적으로 실행 될 겁니다. 


해당 스크립트의 실행을 하지 않고 싶다면 활성화 됨 체크를 해제 하시면 되고 


다신 안 쓰고 싶다면 해당 작업을 선택하신 후에 아래와 같이 작업 -> 삭제를 클릭하시면 됩니다. 

Synology NAS 는 서버 입니다. 서버를 사용한다면 당연히 자동화를 많이 하면 많이 할 수록 효율적으로 사용 할 수 있을 겁니다.



  1. 평강줌마 2018.01.10 16:51 신고

    저는 정말 컴퓨터를 인터넷과 한글, 엑셀 작업용으로만 사용하나 봐요.
    처음 알게 되었네요. 꾹 누르고 갑니다.
    즐거운 오후 시간 되세요.

    • 남성 2018.01.10 17:00 신고

      요즘 사진이나 동영상이나 파일들이 많아지다 보니까 나스 많이들 사용하더라구요. 저도 Synology NAS 하나 장만해서 사용해 보고 있습니다. 즐거운 하루 되시고 매번 방문해 주셔서 감사합니다~

  2. 이재영 2019.03.17 11:07

    안녕하세요. 좋은 팁 잘보고갑니다.
    혹시 modify_files.sh 는 어디서 다운이 가능할까요?

    • 남성 2019.03.17 12:08 신고

      본인의 환경에 맞게 작성하셔서 사용하셔야 합니다.

      아래와 같이 파일을 찾아서 옮기는 간단한 스크립트 파일입니다.

      #!/bin/sh
      find /var/services/video/* -maxdepth 1 -name '*초인*가족*' -type f -exec mv {} /var/services/video/drama/초인가족 \;

Simulink 는 많은 경우 MATLAB script 를 사용하여 자동화를 할 수가 있습니다. 


당연히 MATLAB 코딩을 잘해야 Simulink를 자유자재로 다룰 수 있을 겁니다.


물론 그냥 노가다로 Simulink를 구현 할 수도 있지만 이렇게 하면 무수한 클릭질에 Simulink 설계가 정말 싫어 질 겁니다.


암튼 오늘은 Simulink 블록의 존재 유무를 MATLAB Command Window 에서 확인 하는 방법에 대해 소개 하려 합니다. 


Simulink 블록의 존재 유무를 확인하기 위해서는  getSimulinkBlockHandle() 함수를 사용하면 됩니다.


함수의 이름을 보면 알겠지만 Simulink 블록의 handle 을 구하는 함수 입니다.


getSimulinkBlockHandle() 함수에 대한 메뉴얼은 아래 주소에서 확인 할 수 있고~ 


https://kr.mathworks.com/help/simulink/slref/getsimulinkblockhandle.html


getSimulinkBlockHandle()을 사용하는 경우 블록이 존재하면 블록의 handle 을 return 하고, 존재하지 않으면 -1 을 return 합니다. 


따라서 아래와 같이 사용 할 수 있을 겁니다.


if (getSimulinkBlockHandle('modelname/sysname') == -1)

 % block does not exist

else

 % block exists

end


블록의 path 를 확인하는 방법은 블록을 클릭하고 MATLAB command window 에 gcb 라고 타이핑 하면 됩니다. 


아래와 같은 모델(NewModel.slx)에서 Scope 를 선택한 후에 MATLAB command window 에 gcb 라고 타이핑 하면~ 다음과 같이 path 가 나옵니다.

NewModel/Scope 

위 path 에 대해 getSimulinkBlockHandle() 함수를 사용해 보면~ 아래와 같이 handle 값이 나오는 것을 확인 할 수 있습니다.

>> getSimulinkBlockHandle('NewModel/Scope')

ans =

   1.6290e+03

  

그럼 위 모델에 없는 블록 이름을 하나 테스트 해 보죠~ 아래 결과를 보면 위 설명대로 -1 이 나오는 것을 확인 할 수 있습니다.

>> getSimulinkBlockHandle('NewModel/Scope 1')

ans =

    -1



+ Recent posts