프로그래밍(128)
-
Pub-Sub 구현 : Go + Google Protocol Buffers + Nats + Github.com
Pub-Sub 구현 하면서 처음 사용하는 환경으로 고생을 많이 했습니다. 그래서 정리해 둡니다. 우선 pub-sub은 언제 사용할까요? 개념은 도대체 뭘까요? 요기 참고 사이트에서 확인하세요. https://kchanguk.tistory.com/75 자 그럼 펍섭을 위해서는 중간에 토픽을 퍼블리시 받고 서브스크라이버들에게 메시지를 전달하는 서비스가 필요하겠죠? 이 역할을 해주는 솔루션 중 하나가 Nats 입니다. 아주 라이트하고 간단한 설치만으로 사용가능합니다. 리소스도 상당히 적게 먹습니다. 2. Nats - Raspberry Pi에 설치 을 참고하세요. 이렇게 메시지를 미들웨어를 통해서 주고 받으려면 메시지 구조도 명확해야하고 데이터 사이즈도 작은 것이 좋겠죠? 그래서 차용한 것이 구글의 gRPC에서..
2021.07.30 -
File Transfer - scp, rsync
서버 작업을 하다보면 서버와 서버 사이에 파일 전송 이슈가 있는 경우가 있다. 개인적으로 주로 SFTP나 FTP를 이용해서 파일을 전송했었는데... 요즘은 rsync 를 이용해서 파일 전송을 주로 하고 있습니다. 그중 많이 쓰이는 scp, rsync 에 대해서... 간단히 커맨드 정리 해둔다. SCP (Secure Copy) ssh를 통해서 파일을 전송하는 도구로 서버에서 서버로 쌍방향 전송이 가능하다. 다른 장비로 파일 복사하기 scp -rp sourcedirectory user@dest:/path -r means recursive -p preserves modification times, access times, and modes from the original file. scp *.pdf sean@..
2021.02.06 -
[nodejs] AWS S3 file 관리하기
급작스럽게 AWS S3 에서 파일을 올리고, 내리고 관리할 일이 발생했는데 임시 작업 이라서 nodejs 를 이용해서 처리 하기로 결정했다. 개발했던 내용을 좀 정리 해둔다. 먼저 aws-sdk 를 설치해야한다. $ npm install aws-sdk 간단하게 목록 조회, 업로드, 다운로드 함수 구현한 내용중 일부를 기록해 둔다~ const fs = require('fs'); const AWS = require('aws-sdk'); const s3 = new AWS.S3({ accessKeyId: "Your API Access Key ID", secretAccessKey: "Your API Secret Access Key" }); /** * Object List from AWS S3 bucket * @p..
2021.02.05 -
Go Lang 공부를 시작하다
옮겨온 회사에서 Go Lang을 주요 백엔드 개발 언어로 사용하고 있다.이 나이에 언어를 다시 공부하는 것이 참 쉽지는 않다. 바로 얼마 전에 Python을 혼자 공부하면서 느끼기도 하였지만 새로운 것을 배운다는 것이 어떤 성취에 대한 희열로 다가와야 기쁨이 더하고 의욕이 넘칠 건데 말이다. ㅎㅎ 지난 4일 연휴로 쉬면서 고랭이를 영접하였다.공부 자료는... http://golang.site/Go/Basics 내가 본 사이트 중에 가장 잘 정리된 사이트다. 당 사이트 쥔장님께 진심 감사를 드립니다. 꾸뻑~ 2일 정도 사이트를 훑고 직접 코딩도 해보면서 기본 문법을 숙지하였다.초기에 접근하는데 아주 좋은 사이트라 생각된다. 강추를 드린다. 고랭 관련해서 공부하면서 좋은 내용이 있으면 공유해보고자 한다. 젊..
2018.12.26 -
root 유저로 ssh 접근 제어 해야할 때
ssh를 이용해서 외부 접근을 하는 경우에 root 유저로 붙을 수 있게 되면 아무래도 보안상 위험하겠지요.원격으로 해킹 시도가 상당히 발생할 수 있습니다. 이에 따라서 root 유저는 통상적으로 ssh 접근을 못하도록 하고, 일반 유저로 접근해서 su 또는 sudo를 이용해서 접근하도록 제어합니다. $ sudo vi /etc/ssh/sshd_configPermitRootLogin yes
2018.08.23 -
CentOS - SVN 설치시 에러
CentOS에 svnserve를 설치하다가... 이 사이트 참고 했음 : http://b1ix.net/290 설명이 매우 잘 되어있어서 따라하면 땡... 다만 중간 부분에 나와있는 이 부분!!! [root@localhost checkout1]# svn checkout svn://localhost/svn_repos svn: E000013: Unable to connect to a repository at URL 'svn://localhost/svn_repos' svn: E000013: file '/home/svn/svn_repos/format' 를 열 수 없습니다: 허가 거부 이에 대한 해결책이 필요했다.위의 에러는 selinux가 보안상 막고 있어서 발생하는 것이 맞다. 이를 해결 하기 위해서는... r..
2018.08.23 -
Linux 프로세스 관리 쉘
################################### 1. 특정 프로세스를 찾아서 죽이기 #!/bin/bash ps -ef | grep -v grep | grep 프로세스명 | awk '{print $2}' | xargs --no-run-if-empty kill -9 $1 ################################### 2. 특정 프로세스가 살아있는지 체크해서 죽어있으면 살리는 쉘 $ vi /var/test/run.sh #!/bin/bashPROCESS_CNT=`ps -ef | grep 프로세스명 | grep -v grep | awk '{print $2}' | wc -l`if [ "$PROCESS_CNT" == 0 ];then echo "[`/bin/date +\%Y\%m\%d..
2018.08.23 -
SSH 접속 세션 시간 조정
SSH 접속이 자주 끊겨서 고생하는 경우들이 있는데... 그에 대한 해결책을 간단히 노트해둔다.SSH 클라이언트 접속 시간 조정sudo vi /etc/ssh/ssh_config# otehr configs 부분에 아래 내용을 주석 해제하고 숫자값을 정해준다. ServerAliveInterval 100 SSHD 서버에서의 접속 시간 조정sudo vi /etc/ssh/sshd_config아래와 같이 주석 해제하고 값을 지정해주시면 됩니다. ClientAliveInterval 600 TCPKeepAlive yes ClientAliveCountMax 10SSHD 서버 재기동이 필요합니다. $ sudo service ssh restart
2018.07.27 -
Jenkins 포스트 쉘 스크립트 권한 관련 문제
리눅스 장비에 jenkins 를 설치하고나서 배포를 하다가 포스트 쉘 스크립트를 넣었다가 권한 문제로 에러를 여러차례 겪었는데... jenkins는 jenkins 유저를 사용하고 있기 때문에 사용하려는 쉘에 접근하기 위해서는 권한이 필요했다. 이를 해결하기 위해서 jenkins 유저에 sudo 권한을 주고 포스트 쉘 쪽에는 sudo /path/to/abcd.sh 이렇게 처리를 해보는 것으로... 우선 sudoers에 유저와 권한을 넣어줘야 한다. $ vi /etc/sudoers# User_Alias ADMINS = jsmith, mikem
2018.07.27