CRON 을 ShellScript로 처리하기

Linux, NAS
서버를 운영하다보면 여러가지 스케쥴러 작업을 실행할 일이 생깁니다. 내가 서버 관리자 이면은 그냥 귀찮음을 감수 하고 매번 등록을 하는것도 나쁘지 않지만 매번 찾아가서 맞추기는 솔직히 귀찮음이 발동을 해서 CRONTAB은 한개의 파일만 보고 실행을 할려고 만들었습니다. #!/bin/bash # 시스템 분 정보 NOW=$(date +"%M") echo $NOW # CRON 단일 파일로 처리 하기 위해서 분 단위 구분 let FULL=$NOW%60 let HALF=$NOW%30 let TEN=$NOW%10 # CRON 조건문 추가 if [ $FULL -eq 0 ]; then echo 'FULL' /volume1/@appstore/PHP7.4/usr/local/bin/php74 -q /volume2/publicedition/skem/index.php system cron dumy_noti elif [ $HALF -eq 0 ]; then echo 'HALF' elif [ $TEN -eq 0 ]; then echo 'TEN' else echo 'ONE' /volume1/@appstore/PHP7.4/usr/local/bin/php74 -q /volume2/publicedition/skem/index.php system lot lot_check fi 물론 단일 파일이라서 CRONTAB하고는 작동 방법이 조금 다르지만 언제나 내 좋을대로만 움직일수 없기에 가장 협의를 본 방법입니다. 이 방법외에도 많지만 관리자에게 말을 하지…
Read More

Synology에서 git pull 후 배포만 만들기

NAS
#!/bin/bash #날짜 date=$(date '+%Y%m%d') # 디렉토리 비우기 /usr/bin/rm -f /volume1/Distribute/table.tar.gz /usr/bin/rm -rf /volume1/Distribute/table/* # 디렉토리 복사 /usr/bin/cp -r /volume2/development/table/* /volume1/Distribute/table/ # Database sql dump /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump -uUSER -pPASSWORD table > /volume1/Distribute/table/table.sql # 불필요 디렉토기 삭제 /usr/bin/rm -rf "/volume1/Distribute/table/_" /usr/bin/rm -rf "/volume1/Distribute/table/프로젝트" # 디렉토리 생성 /usr/bin/mkdir /volume1/Distribute/table/upload /usr/bin/chown user:users /volume1/Distribute/table/* /usr/bin/chmod 777 /volume1/Distribute/table/upload # 파일 압축 /usr/bin/tar -zcvf /volume1/Distribute/table.tar.gz /volume1/Distribute/table/*
Read More

Synology에서 쉘로 SVN update하기

NAS
쉘스크립트를 만드는 이유는 자동화를하기 위해서 입니다. 커멘트 모드에서 매번 실행을 하다 보면은 조금은 잊어 버릴때가많아서 스케쥴러에 걸어 놓으면은 상당히 편합니다. #!/bin/bash /usr/bin/svn checkout svn://URL/프로젝트명 /volume2/development/받을 경로/ 실 생활에서 사용하는것에 감춰야 할 부분을 감추고 정말 간단한 정보만을 표현을 한것입니다. 시놀로지 NAS에서 작업스케쥴을 걸면은 잊어 먹지 않고 바로 공개적으로 사용할수 있는 Public 웹이 만들어지기때문에 굳이 NAS에 들어가지 않아도 되는 이점이 존재 하는것입니다. 스케쥴러 캡쳐 화면 위에 화면 처럼 조금 빠르지만은 개발을 할 시간에 걸어 놓으면은 별도로 NAS에서 확인하지 않아도 바로 적용이 되고, 늦어도 커밋후 10분 이내에 바로 NAS Web에 적용이 되지 작업을 줄이는 일입니다. 처음에 이렇게 사용하게 된 이유가 제가 담당을 해서 매번 업데이트를 실행해야 되어서 퇴근전이나 큰 변경사항이 있다면은 매번 하다 보니 조금은 귀찮은 점을 해소하기 위해서 작업을 하게 된 것입니다. 프로그램을 만드는 사람이라면은 응당 자기가 귀찮은 일을 프로그램에게 맡겨서 처리할수…
Read More

Synology 쉘스크립트 백업

NAS
#!/bin/bash #날짜 date=$(date '+%Y%m%d%H%M') NowDate=`date` # 기존 파일 삭제 /usr/bin/rm -f /volume1/web/backup/data/${date}.sql /usr/bin/rm -f /volume1/web/backup/data/${date}.tar.gz # 압축 backup 디렉토리, phpMyAdmin 디렉토리 제외 /usr/bin/tar -zcvf /volume1/web/backup/data/${date}.tar.gz /volume1/web/* --exclude /volume1/web/backup --exclude /volume1/web/phpMyAdmin # 압축파일 일정시간 지난후 삭제 /usr/bin/find /volume1/web/backup/data/ -name '*.tar.gz' -mtime 30 | xargs /usr/bin/rm -f #MySQL DB sql backup /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump -u사용자 -p패스워드 데이터베이스 > /volume1/web/backup/data/${date}.sql #일정기간 경과 파일 삭제 /usr/bin/find /volume1/web/backup/data/ -name '*.sql' -mtime 30 | xargs /usr/bin/rm -f
Read More

Port번호 사용 영역

Linux, NAS, Windows
0 ~ 1023 : well-known port번호 영역입니다. 이 영역의 port번호는 UNIX/LINUX에서 root 권한으로만 port를 열 수 있습니다. 예약영역이라고 보면 됩니다. 1024 ~ 49151번: 등록된 포트 (registered port) 이 영역은 주로 서버 소켓으로 사용하는 영역입니다. 49152 ~ 65535번 : 동적 포트(dynamic port) 이 영역은 자동으로 할당되는 영역입니다.
Read More
[Synlogy] SMS 알람을 텔레그램으로 받기

[Synlogy] SMS 알람을 텔레그램으로 받기

NAS
텔레그램 시놀로지 > 제이판 > 알림 > sms "SMS 서비스 업체 추가" 버튼을 클릭해서 추가 합니다. 공급자 설명은 자신이 원하는 이름으로 변경을 합니다.이후에 SMS URL에 다음과 같은 값을 입력 합니다. https://api.telegram.org/bot자신의토큰/sendmessage?chat_id=채팅방번호&user=1&pass=2&phone=3&text=Hello World 매개변수를 위 사진과 같이 설정을 합니다. 사용자 이름, 패스워드, 기본전화를 적당히 숫자를 입력 합니다. 그러면은 이제 사용할 수 있습니다.
Read More

[Synology] DownloadStation 완료시 텔레그램으로 알림 전송

NAS
1. 패키지센터에서 Download Station을 종료 2. ssh를 이용하여 쉘로 진입하여, Root권한을 획득한다. #sudo -i 3. Download Station 재부팅 간 설정파일을 초기화하지 않도록 변경하기 위해, 아래 명령어로 스크립트 파일을 수정 #vi /var/packages/DownloadStation/scripts/start-stop-status 4. "rm ${PACKAGE_DIR}/etc/download/settings.json" 이라고 적혀있는 부분을 찾아서, 앞에 "#"을 붙여 주석처리해주고 저장 #rm ${PACKAGE_DIR}/etc/download/settings.json 5. 설정 변경을 위해 아래 명령어로 설정 파일 수정위 4번에서 경로를 찾아서 변경된 경로로 접근을 해도 됩니다.(업데이트에 따라서 경로가 바뀔수도 있습니다.) #vi /var/packages/DownloadStation/etc/download/settings.json 6. script-torrent-done-enabled, script-torrent-done-filename을 찾아서 아래와 같이 변경 "script-torrent-done-enabled": true, "script-torrent-done-filename": "/volume1/@appstore/DownloadStation/bin/downloadComplete.sh", 7. postgresql의 계정정책 관련 설정을 변경 #vi /etc/postgresql/pg_hba.conf 8. 아래와 같이 되어 있는 부분을 변경 #Before) # TYPE DATABASE USER ADDRESS METHOD local all postgres peer map=pg_root local all all peer #After) # TYPE DATABASE USER ADDRESS METHOD local all postgres trust local all all peer 이걸 안하면, OS계정과 postgresql 계정이…
Read More

[Ubuntu] 우분투에서 NAS 마운트하기

Linux, NAS
NAS IP: 192.168.0.1/nas ID: nas PW: 1234 1. smbfs 설치1    $ sudo apt-get install smbfs smbfs가 설치가 안된다면 아래 명령어로... (사실 지금 smbfs는 cifs-utils package로 대체되었음)1    $ sudo apt-get install cifs-utils 2. 마운트할 폴더 생성12    $ su -# mkdir /home/mynas 3. 마운트하기1    sudo mount -t cifs //192.168.0.1/nasfolder /home/mynas -o user=nas,pass=1234,rw 관리자 권한을 얻어서 /media/mynas 폴더로 들어가면 NAS 서버 디렉토리 구조를 확인할 수 있다. 4. 자동 마운트 등록하기 3번 단계까지만 설정하면 재부팅후 다시 일일이 NAS를 마운트 해야 한다. 부팅 시 자동으로 마운트되도록 하려면 다음과 같이 해주면 된다:1    vi /etc/fstab 아래 내용 추가1    //192.168.0.1/changuk /media/mynas cifs user=changuk,pass=1234,rw   0   0
Read More

[NAS] 하드 용량 교체

NAS
레이드 구성 안하고 각각의 하드를 각각의 볼륨으로 인식하는 경우 예) 2베이의 NAS [2T,2T] -> [2T, 4T] 로 변경    1. 제거 될 기존의 하드(하드1)를 남기고, 하드2 제거하고 새로운 4T 하드를 삽입 2. 4T 하드를 초기화 하고 새롭게 볼륨 생성 -> 기존 하드(하드1) 2T의 파일을 4T 로 카피 한다. 3. 기존의 하드(하드1)를 제거하고 다른 하드(하드2)를 삽입한다.  현재의 하드 상태 [2T, 4T] 4.로그인 해서 보면 하드는 제대로 인식되었는데 기존의 하드(하드2)의 파일 내용이 읽히지 않을 수 있다.  그럴 경우 제어판 - 공유 폴더 에서 하드2의 공유 폴더와 볼륨을 기존 것은 지우고 새롭게 생성 하면 인식된다. 출처 : http://photolog.blog.naver.com/PostThumbnailView.nhn?blogId=henri23&logNo=70171771276&categoryNo=114&parentCategoryNo=0
Read More

[NAS] Synology DSM에서 DNSEVER 의 DDNS 갱신하기

NAS
DSM에서 제어판>터미널에서 SSH서비스 활성화를 체크해서 SSH서비스를 시작한다. putty로 NAS에 root 사용자로 접속하여 작업을 한다.※ 작업이 완료되거나 혹은 ssh를 사용하지 않으면은 사용후에 꼭 해제해주시기 바랍니다. (root는 admin사용자와 password가 같다.) # /etc.defaults/ddns_provider.conf 파일 편집 # Input: # 1. DynDNS style request: # modulepath = DynDNS # queryurl = [Update URL]?[Query Parameters] # # 2. Self-defined module: # modulepath = /sbin/xxxddns # # Our service will assign parameters in the following order when calling module: # ($1=username, $2=password, $3=hostname, $4=ip) # # Output: # When you write your own module, you can use the following words to tell user what happen by print it. # You can use your own message, but there is no multiple-language support. # # good - Update successfully. # nochg - Update successfully but the IP address have…
Read More

[NAS] synology eaDIr 삭제

NAS
[NAS] synology eaDIr 삭제 ssh로 접속후 해당 디렉토리에서 다음명령어실행 find -type d -name ‘@eaDir’ -print0 | xargs -0 rm -rfv 다음은 @eaDir 생성하거나 생성 못하게 하는거라는데 아직 실행해보지는 않았습니다.이 점에 대해서는 단지 정보만 기록해 놓은것이기 때문에 주의해주시기 바랍니다. To stop the folders from being created: <@esDir 생성 방지> cd /usr/syno/etc.defaults/rc.d S66synoindexd.sh stop S77synomkthumbd.sh stop S88synomkflvd.sh stop S99iTunes.sh stop chmod 000 S66synoindexd.sh synomkthumbd.sh S88synomkflvd.sh S99iTunes.sh To re-enable the folders being created: <@eaDir 생상하기> cd /usr/syno/etc.defaults/rc.d chmod 655 S66synoindexd.sh synomkthumbd.sh S88synomkflvd.sh S99iTunes.sh S66synoindexd.sh start S77synomkthumbd.sh start S88synomkflvd.sh start S99iTunes.sh start
Read More
[Windows] WebDav 용량 늘리기

[Windows] WebDav 용량 늘리기

NAS, Windows
WebDAV 용량 늘리기 위치 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters   BasicAuthLevel 값이 기본 1로 되어있는데 2로 바꿔주시면 됩니다.※ 키 이름이 없다면 "DWORD Value" 키를 새로 생성 # 각 값의 의미0 - Basic authentication disabled1 - Basic authentication enabled for SSL shares only2 or greater - Basic authentication enabled for SSL shares and for non-SSL shares # FileSizeLimitInBytes 값을 수정 기본값 2faf080 Byte = 50,000,000 Byte  ※ 제한이 50메가 정도 를 원하는 값으로 적절히 수정 출처 : http://m.clien.net/cs3/board?bo_style=view&bo_table=lecture&page=1&wr_id=142068
Read More