SVN으로 배포후 기본 세팅하기

Linux
여러 NAS 서버에 배포를 해줄때 초기에 실행할 파일입니다. 예전에는 APM세팅을 해주고 잘아는 사람이 세팅을 해주는것이 일반적인 Server라면은 NAS에서는 기본적인 패키지 설치도 쉽고 해서 회사 내부에서 전혀 모르는 사람이 메뉴얼에 따라서 초기 세팅을 해서 배포하는 경우도 있습니다. 그렇게 작업을 하다 보니 꼭 한번은 체크를 해야 되어서 필수적으로 세팅하고 해야되는 작업을 그냥 파일로 만들어 보았습니다. 어차피 모든 소스는 범용적으로 소스저장소에 올려 놓기때문에 초기에 파일 몇개만 순서적으로 실행을 하면은 모든 사람이 할 수 있어서 이런 방법을 취하게 되었습니다. #!/bin/bash # SVN SETTING /usr/bin/svn propset svn:ignore application/libs/databases.php . # DEFAULT DIRTORY MAKE targetDataBase=`pwd -P` if [ -d $targetDataBase/uploads ]; then echo 'Not Make' else /bin/mkdir $targetDataBase/uploads fi if [ -d $targetDataBase/uploads/logs ]; then echo 'Not Make' else /bin/mkdir $targetDataBase/uploads/logs fi /bin/chmod 777 $targetDataBase/uploads /bin/chmod 777 $targetDataBase/uploads/logs 이렇게 파일을 만들어 놓고 보면은 이제 누구나 할…
Read More

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
팟플레어 광고 차단

팟플레어 광고 차단

Windows
설치시 언어를 한국어가 아닌 영문으로 하고 하는 방법이라고 합니다. 화면 캡쳐 위에 화면은 설치후에 언어를 변경하는 방식입니다. https://dssbblog.com/카카오-팟플레이어-광고제거-언어-변경-으로-차단-해/ 2020년 11월 1일 현재 제가 무엇을 잘못하였는지 위 방법으로는 현재 제대로 작동하지 않고 있어서 방법을 찾는중입니다. 뭔가 복잡한 작업을 하지 않고 팟플레이어 광고를 제거할 방법이 없는가 고민입니다.
Read More

Apache SSL 등급 확인

Linux, WWW
제가 운영하는 웹서버의 SSL 등급기 갑자기 궁금해져서 한번 테스트를 해보았습니다. 테스트에 사용된 사이트는 ssllabs.com 에 기능을 이용하였습니다. 아래에 링크를 첨부해 놓았습니다. https://www.ssllabs.com/ssltest/analyze.htm 결과는 좋게 A 등급이 나왔습니다. 서버에 사용하는 모든 버전이 업데이트 되면서 결과가 좋게 나온다고 생각은 하였지만 생각하는 부분과 결과를 눈으로 직접 보는것은 다른듯 합니다. 결과화면에 대한 캡쳐본 가끔식은 트렌드에 따라서 움직여야 하는 일이 있습니다. 특히 보안에 관련된 사항은 좀 더 많은 부분을 신경쓰고 현재 진형으로 가는 부분을 잘 적용하는것이 좋을듯 합니다. 위 결과 화면 아래에 더 많은 정보가 있지만 캡쳐를 할 이유가 없어서 위에 가장 중요한 화면만 캡쳐만 한것입니다.
Read More

리눅스 디스크 사용량 확인

Linux
리눅스에서 디스크 사용량에 대해서 확인하는 명령어 입니다. 간단하게 'df'로 해서 처리를 할 수 있지만 다른 부분에 대해서도 확인 가능한 명령어입니다. df df -P 전체용량 # KB단위 df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum " KB" }' # GB 단위 df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum/1024/1024 " GB" }' 전체 사용량 # KB 단위 df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum " KB" }' # GB 단위 df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum/1024/1024 " GB" }' 전체 남은 용량 # KB단위 df -P | grep -v ^Filesystem | awk '{sum += $4} END { print sum "…
Read More

서버 운영체제 버전업!!!

Linux
제가 사용하는 서버의 OS의 운영체제가 버전이 달라졌습니다. 그래서 기존에 사용하던 내용을 새로운 서버에 모두 이전한다고 3~4시간을 투자하였습니다. 물론 계획을 잡기 위해서까지 시간을 한다면은 꽤 많은 시간이 소비되었지만요.... 이전은 계획대로 순조롭게 진행이 되었고, 서버 자체의 접속을 차단한경우는 약 2시간 정도 걸렸는데, 정작 중요한 블로그에 인증서 갱신에 걸려서 강제적으로 1시간을 기다려야 하는 상황이 다가와 버렸습니다. 이러한 문제로 인해서 SSL인증서가 적용되지 않도록 소스 자체를 수정하도록 하고 있습니다. 그래도 블로그 접속이 정상적으로 되어야 한다는 생각이 나서 말이죠 일단 점심 시간이 다가와서 점심을 먹고오면은 1시간이 지나니 다시 시도해 보고 글을 남기도록 하겠습니다. ※ 추가내용 다행이 오래 기다리지 않고 SSL 인증서를 적용하였습니다. 소스 및 DB상의 SSL 인증서를 제거한 부분을 다시 살린다고 지금까지 한 과정을 꺼꾸로 진행중에 있습니다. OS가 바뀐것뿐인데 서버가 상당히 쾌적해졌습니다. 물론 새롭게 설치한 서버에 별 다른 작업을 하지 않아서 쾌적한것도 있을것이라고 생각이 들지만 blog를…
Read More
Local에 운영하는 DNS Server

Local에 운영하는 DNS Server

Windows
개인 컴퓨터에서 나만의 도메인을 만들어서 비공개로 웹브라우저로 이용을 하는데, 매번 hosts 파일을 수정하는것이 번거로워서 만들게 된것입니다. 그렇다고 해서 특별한 기능을 넣거나 하지 않으면서 hosts 파일에 대한 수정을 최대한 줄여보고자 하는 형태로 개발이 된것입니다. 아래의 화면은 프로그램 실행 화면입니다. 프로그램 자제적으로 SQLite DB를 사용해서 자제적으로 DB를 이용해서 항상 그래도 운영이 되도록 만든것입니다. hosts 파일 수정은 원래 권장되는 방법도 아니고, 백신 업체들도 hosts 파일에 대한 변조를 체크하는 업체들도 있어서 가능하면은 사용하지 않는것이 좋은것입니다. 프로그램 실행화면 현재 test.test.com 이라는 도메인을 한번 만들어서 넣어본것입니다. 계속 추가하고 변경하고 삭제를 할 수 있도록 만든다고 하였지만 문제점도 있지만 쓸만은 합니다. 윈도우에서 CMD 를 통해서 nslookup 를 통해서 목록에 추가한 도메인을 조회한 모습니다. nslookup 으로 확인한 화면 프로그램 초기 버전 파일을 다운로드 할 수 있습니다. SimpleLocalDnsServer다운로드 현재 프로그램 도중에 DNS 정보가 정상적으로 갱신이 되지 않기도 합니다. 단기간에 만들다보니…
Read More

Ubuntu 서버에서 Gitlab 제거

Linux
정말 간단한 내용입니다. Ubuntu 서버에 설치를 하고 나서 지우려고 보니 명령어를 모아 놓은곳이 없어서 일단 정리해를 해 놓습니다. sudo gitlab-ctl cleanse sudo gitlab-ctl uninstall sudo apt remove gitlab-ee sudo apt purge gitlab-ee 별 다른 내용은 없지만 필요하신분이 저처럼 있을 거라고 생각해서 짧게나마 정리를 해 놓습니다.
Read More

SCP 복사

Linux
SCP 복사 기능을 정말 가끔 사용할일이 있는데, 매번 깜빡하고 다시 검색을 해보는 일이 있어서 이렇게 정리를 합니다. scp -i "인증파일경로" -r "복사할파일" ubuntu@ServerIP:"대상경로" 별 다른 내용은 없으며, 해당 기능을 통해서 중간에 내컴퓨터를 경우하지 않아도 이제 복사를 할 수 있다는 생각에 정리를 해 놓는 것입니다.
Read More

우분트 자동시작서비스 등록 실행하기

Linux
해당 기록은 제 개인적으로 기록을 해 놓은 부분입니다. 누군가에게 도움이 될수도 있지만 아마 전혀 쓸모가 없을수도 있습니다. 그렇기에 개인 기록이라는 점을 먼저 밝힙니다. crontab으로 실행하는것에 한개가 있습니다. 재부팅 되면서 실행을 해도 되고, 일정 시간을 체크해서 해도 되지만, 항상 가동해야 되는 부분이 있어서 만들게 된 부분입니다. cp /home/ubuntu/service/serviceCrawer.service /etc/systemd/systemd --------------- [Unit] Description=ServiceCrawer-1 After=network.target [Service] ExecStart=/usr/bin/php /home/ubuntu/service/service.file start ExecStop=/bin/sh /home/ubuntu/service/stop.sh Restart=on-failure [Install] WantedBy=multi-user.target ------------------ sudo chmod 644 serviceCrawer.service sudo systemctl daemon-reload sudo systemctl enable serviceCrawer.service sudo systemctl start serviceCrawer.service sudo systemctl disable serviceCrawer.service 일단 네트워크가 문제가 생기면은 재시작을 할 것이고 아니면은 항시 기동이 되도록 프로그램을 만들었습니다. 통신을 하는 부분이라서 네트워크가 죽으면 살아있어도 쓸모가 없습니다. 항상 정보를 수집하는 부분에서 일정시간마다 아닌, 실시간으로 통신을 해서 정보를 획득하기에 끊기지 않는다는것이 제일 관점있고, 그 이후 데이터를 잘 기록해야되는 부분입니다. 위에 코드는 그냥 서비스에 등록하는 부분만 있습니다.…
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