
Kubernetes 2022. 6. 9. 0
asdf (switch kubectl version)
kubectl Command를 사용하는 경우 k8s의 버전에 따라서 kubectl version 도 변경해 줘야 하는 경우가 발생한다. 이때 유용하게 사용할수 있는 tool를 소개 하고자 한다. asdf command 이며, 이 command는 kubectl 뿐만 아니라 node, java, python 등의 다른 command 또는 language 버전 변경이 가능한다. 여기서는 kubectl 버전 변경 및 간단한 설치 방식에 대해서만 기술 한다. 공식 홈페이지 https://asdf-vm.com/ Github Repository https://github.com/asdf-vm/asdf MacOS에서 asdf 설치 # Brew를 이용한 asdf 설치 brew install asdf # asdf를 사용한..
Kubernetes 2022. 6. 2. 0
kubectx, kubens (k8s 유용한 툴)
kubectx, kubens What is kubectx? 기존에 사용하는 cluster가 1개 이상이 될일이 없어서 크게 context 전환에 대해서 관리할 필요 성이 없었지만, 환경이 추가 되면서 context 전환의 필요성이 생겨 찾아 보던중 손쉽게 context를 전환 할수 있는 tool이 있어 소개 하고자 합니다. kubect tool이며, 이 명령어를 확인 하면 좀더 직관적이고 손쉽게 Kubernetes Cluster의 context를 손쉽게 변경이 가능합니다. 만약 내가 기존의 cluster를 변경하고자 한다면, kubectl 명령어를 통해서 좀더 길게 명령어를 써야 했지만, kubectx 를 사용하게 되면 명령어만 입력하면 리스트를 조회 하고 alias를 변경하고 이전에 사용한 contex..
Linux, Shell Script 2021. 9. 6. 0
Apache IP 주소로 웹서버 접근 제한
# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for m..

Linux, Shell Script 2021. 5. 14. 0
오래된 로그 검색해서 지우기
오래된 로그를 한번에 지우고 싶을 경우 find의 -exec 옵션과 합께 사용하면 지울수 있다 이때 모든 조회된 로그가 한번에 지워지니 사전에 충분히 ls 명령어를 통해서 확인 후 삭제 해야 한다. #!/bin/bash path="/land/service/" expire_days=14 echo "Start deleteExpireFile.sh" # find ${path} \( -name "app*.log" -o -name "access*.log" -o -name "commissions*.log" -o -name "monthly_commissions*.log" \) -type f -mtime +${expire_days} -exec rm -f {} \; find ${path} \( -name "app*.log..

일상의 끄적임 2020. 12. 28. 0
가정용 에스프레소 기계
최근 이사를 하게 되면서 가정용 에스프레소 기계를 샀네요 그전부터 엄청 사고 싶었는데 드디어... ㅠㅜ 아무래도 이름이 있는 여러 브랜드 드롱기 세이코 가쯔야 등등의 브랜드를 사고 싶긴 했는데 최근 한국의 드롱기라고 불리우는 마티인 오스너 예가 클래식 CM6825 을 사게 되었다. 일단 20bar 로 풍부한 크리마를 뽑을수 있다는 장점이 있었고 집에서 마실때 크리마를 통해서 부드러움을 느끼고 싶었다. 또한 에스프레소 기계에서 제일 중요한게 압력 유지 및 보일러의 성능이라고 들었던기억이... 잘은 몰라요... 하지만 일단 압력이 높은 브랜드를 선택 하고 싶었고 기타 브랜드의 경우 15bar가 최고 였고 그러다 보니 압력 20bar에서 찾다 보니 예가 클래식을 선택하게 된거 같다. 그리고 집에서 사용할거다 ..

일상의 끄적임 2020. 12. 21. 0
아이들 책상 추천 (#내돈내산)
큰애가 이번에 초등학생이 되다 보니 애들 책상이 필요해서 큰맘 먹고 그전 부터 본 니즈툴 그로우로 구매 했습니다. 니즈툴 그로우를 선택하게 된건 무엇보다 애들이 커가는데에 있어서 앉아서 사용할수 있는 부분을 모두 조정이 가능한게 컸습니다. 저도 앉아서 근무를 많이 하는 직업의 특성상 책상이 집중력에 미치는 영향력이 크다보니 비싸더라도 조정이 잘되는 책상을 사주고 싶어서 애들 태어나기 전부터 내가 가지고 싶어한 책상이었네요... ㅠㅜ 전 못사고 애들에게.... 다른 비슷한 각도조절 되는 제품을들 봤는데 니즈툴 그로우를 예전부터 맘에 두고 있었던 저에게는 성에 차지 않았습니다. 먼가 모두 부족한 느낌.... ;;; 의자에 앉았을때 발바닥이 평평하게 딛을수 있고 의자에 앉게 되면 자연스럽게 허리가 펴지게 되는..

Kubernetes 2020. 8. 6. 0
Kubernetes Basic (MSA에서 Kubernetes)
Cloud Computing  as a Service 각종 `디지털 재화가 네트워크를 통해서 사용 가능한 형태로 제공되는 서비스`이다. XaaS는 클라우드를 통해서 구현된다. 엄밀히 말해 클라우드 자체가 ''대용량 스토리자와 연산능력 등이 갖춰진 서버를 기반으로 클라이언트(사용자)에게 가상의 네트워크 컴퓨팅 환경을 제공한다.'는 개념인 만큼, 클라우드는 태생부터 'as a Service' 구현을 위해 만들어 졌다고 봐도 과언이 아니다. 과거엔 모든 프로그램을 PC에 직접 ..

일상의 끄적임 2020. 7. 15. 0
KakaoTalk 미리보기(오픈그래프) 이미지 캐쉬 삭제 방법
Meta Tag 이미지 지정 방법 Meta Tag에 og:image를 이용해 사용자에게 미리보기 이미지를 지정 및 제공할 수있다. 아래는 `https://www.kakaocorp.com/`의 Meta Tag의 og:image 정보이다. meta content="//t1.kakaocdn.net/kakaocorp/corp_thumbnail/KakaoTalk.png" property="og:image"/ KakaoTalk 미리보기(오픈그래프 OG) 이미지 Cache 삭제 방법 최근 사내에서 개발자가 테스트 도중 og:image를 바꿨는데도 불구하고 카카오톡에서 cache가 삭제 되지 않아서 실제 테스트시 어려움을 겪었다. 그래서 KakaoTalk의 Cache를 삭제하는 방법을 찾다가 확인하게 되었다. Kaka..

Linux, Shell Script 2020. 6. 27. 0
공개키 인증으로 SSH Password 없이 접속하기
공개키 인증으로 SSH Password 없이 접속하기 SSH Key 만들기 SSH Key를 통해서 서버에 접속시 Unix 계열에서는 ssh-keygen 명령어를 이용하면 된다. Window OS에서는 SSH Client 프로그램이 자체적으로 생성 제공하는 프로그램을 이용하면 된다. 여기서는 Unix 계열의 Key를 생성하는 방법을 기술 하도록 하겠다. ssh-keygen 사용하기 아래의 명령어를 입력하면 $HOME/.ssh Folder 밑에 Private Key 와 Public Key 가 생성이 된다. Key 생성시 3번의 사용자 값 입력을 받는다. Enter file in which to save the key (/Users/secuof/.ssh/id_rsa): Key의 저장 위치를 물어 본다. 이때 ..

Linux, Shell Script 2020. 6. 25. 0
Crontab 설치 및 사용법
Crontab installation and Usage Crontab 설치 - CentOS # cron 설치 sudo yum update -y sudo yum install -y cronie # cron 시작 sudo systemctl start crond # cron systemctl 활성화 sudo systemctl enable crond # cron systemctl 등록 확인 sudo systemctl list-unit-files | grep crond Crontab 설치 - Ubuntu # cron 설치 sudo apt update -y sudo apt install -y cron # cron 시작 sudo service cron start # cron systemctl 활성화 sudo syst..

Kubernetes 2020. 6. 25. 0
쿠버네티스 기본 용어(Terms)
An Introduction to Kubernetes Base Terms CNCF (Cloud Native Computing Foundation) The Cloud Native Computing Foundation (CNCF) builds sustainable ecosystems and fosters a community around projects that orchestrate containers as part of a microservices architecture. Kubernetes is a CNCF project. Kubernetes Kubernetes is a portable, extensible, open-source platform for managing containerized workl..

Linux, Shell Script 2020. 6. 22. 0
ipset 이용하여 DDoS or DoS 방어 하기
최근 관리하고 있는 서버에 DoS성 공격이 유입되어 급하게 상단에 있는 HA Proxy에 Access Log를 기반으로 Request 횟수에 따른 IP Block 기능을 추가 하였다. 현재 서버 운영은 User --> HA Proxy --> Web Server 로 구성이 되어 있다. 전반적인 Process를 아래와 같이 처리 하였다. 1. Proxy 서버에서 ipset을 이용하여 iptables에 Source IP 차단 설정 2. 웹서버에서 Access Log 읽어 지정한 횟수 이상으로 Request 유입시 Block List로 체크 (매분 스크립트로 체크) # Proxy Server ipset 기능을 이용하여 list group을 white list, block list 이렇게 2개의 그룹을 생성 하였..
DataBase 2020. 4. 27. 0
[MySQL] Query CheetSheet
ROW_FORMAT 일괄 적용 쿼리 가져오기 SELECT CONCAT('ALTER TABLE `', table_name, '` ROW_FORMAT=DYNAMIC;') AS aQuery FROM information_schema.tables WHERE table_schema = 'SCHEMA NAME'; Index 생성 쿼리 가져오기 SELECT CONCAT_WS('', 'alter table ', table_name, IF( index_name ='PRIMARY', ' add primary key', IF( non_unique =1, CONCAT_WS('',' add index ', index_name ), CONCAT_WS('',' add unique index ', index_name ) ) ), '..

AWS 2020. 4. 14. 0
AWS Instance 사용자 이미지 생성 및 ENA 문제
사용자 이미지 생성하기 기존에 생성해놓은 Instance를 선택후 오른쪽 버튼을 클릭후 Image > Create Image를 선택 하면 선택한 Instance의 이미지를 생성해 준한다. 이때 생성된 이미지는 사용자 계정 및 관련 내용이 그대로 이미지화 되어서 추후 동일한 형태의 이미지로 생성이 가능하다. 이미지 생성 버튼을 클릭하면 Create Image 확인창이 나오고 Image name / Image description 입력 후 "Create Image" 버튼을 눌러 주면 된다. 이미지 생성시 No reboot 옵션 이때 "No reboot" 체크 박스에 체크를 해주지 않으면 실행중인 Instance가 재부팅 된다. 실제 운영중인 서비스라면 주의 해야 한다. 재부팅을 하는 이유는 AWS 공식 문서..

일상의 끄적임 2020. 4. 10. 0
WANTED Welcome Kit을 받다.
작년말에 회사를 옮기면서 WANTED(원티드)를 통해서 입사를 지원하였다. 입사를 지원하면서 원티드에서 3개월이 지난 후 말일 이후에 Starterr Pack을 준다는 이야기를 듣긴 했는데 이제 입사한지도 벌써 3개월이 훌쩍 지나가고 있다. 생각을 안하고 있었는데 오늘 WANTED에서 Starter Pack이 도착했다. 박스로 이쁘게 포장 및 퀄리티 있는 형태로 배달 되어 받았다. 구성품을 보니 가방 / 파우치(필통 형태 및 간단한 물건 담을수 있는..) 2종류 / 볼펜 / 상태메시지 카드 / 노트3종 으로 구성이 되어 있다. 받고 나니 기분이 좋아 진다. 이런거 받고 막 사진을 찍는 스타일이 아니다 보니 처음에 막 뜯었다가 보내준 정성을 생각해서 이후에 다시 사진을 찍어 놓았다. ㅎㅎㅎ

GIT 2020. 4. 10. 0
Git 저장소 만들고 SSH Key로 접속하기 (2)
Git 저장소 만들고 SSH Key로 접속하기 (1) 내가 Git Repository가 필요 했던 이유.. 아무래도 개발자는 아니다 보니 Git을 개발자들과 같이 매일 사용하는건 아니지만 요즘 업무의 특성상 DevOps를 지향하고 있다 보니 아무래도 git 명령어를 많이 사용하고.. blog.secuof.net 그전 글에서 GitHub의 Repository를 만들고 간단히 commit / push 하는 방법을 알아보았다. 이제 SSH 접속을 위해서 SSH Key를 생성하고 SSH키를 GitHub에 등록하는 방법을 알아 보도록 하겠다. SSH Key 만들기 일단 리눅스 기반 기준으로 설명하도록 하겠다. 필자는 MacOS기반을 이용하고 있지만 리눅스 가반의 모든 운영체제는 동일하게 적용해서 Key를 생성 할..

GIT 2020. 4. 9. 0
Git 저장소 만들고 SSH Key로 접속하기 (1)
내가 Git Repository가 필요 했던 이유.. 아무래도 개발자는 아니다 보니 Git을 개발자들과 같이 매일 사용하는건 아니지만 요즘 업무의 특성상 DevOps를 지향하고 있다 보니 아무래도 git 명령어를 많이 사용하고 있다. 회사에서는 GitLab의 기본 접속 구조가 SSH 키로 등록 하게 되어 있어서 등록해놨는데 간혹 이용하는 개인 저장소인 GitHub는 Key가 지금 사용하는 SSH key로 셋팅이 안되어 있다. 최근 다시 Blog를 다시 시작하게 된것도 있고 한번 다시 정리 해야 겠다 마음먹고 이번에 SSH를 접속하는 방법 및 아직 마스터를 못한 Git 사용법에 대해서도 정리 해보고자 한다. 먼저 GitHub를 사용하는 방법은 여러가지가 있겠지만 모두다 git 명령어를 통해서 관리 한다. ..

Slack 2020. 4. 5. 0
Slack WebHook 사용하기
개발자 그룹 또는 커뮤니티 그룹에서 많이 사용하는 메신저인 Slack의 WebHook 기능에 대해서 간단히 알아 보려고 한다. Slack의 경우 개발자 커뮤니티를 기반으로 폭팔적으로 성장해서 최근에는 회사 사내 메신저 또는 커뮤니티 그룹에서까지 많이 사용하고 있다. 필자도 사내 메신저로 Slack을 사용하고 있으며, 커뮤니티 참여시 Slack을 통해서 커뮤니티 활동을 영유 하는 많은 그룹에 속해 있다. 개발자들이 Slack을 좋아한 이유는 아무래도 WebHook 및 App 생태계 활용을 할수 있는 장점 때문에 많이 선호하는 것으로 보인다. 그중에서 WebHook에 대해서 간단히 설정하는 방법 및 테스트 하는 방법에 대해서 알아 보고자 한다. Slack WebHook App 추가 하기 먼저 Slack We..

Linux, Shell Script 2020. 4. 5. 0
VIM 유용한 단축키 및 사용법
기본 단축키 # 일반모드 h : 커서를 왼쪽으로 이동 j : 커서를 아래로 이동 k : 커서를 위로 이동 l : 커서를 오른쪽으로 이동 w : 단어 단위로 뒤로 이동 $ : 현재 라인 맨 뒤로 이동 0 : 현재 라인 맨 앞으로 이동 ^ : 행 첫 글자로 이동 Ctrl + d : 아래로 반 페이지 스크롤 Ctrl + f : 아래로 한 페이지 스크롤 Ctrl + u : 위로 반 페이지 스크롤 Ctrl + b : 위로 한 페이지 스크롤 gg : 문서의 첫 행 이동 Shift + g : 문서의 마지막 행 이동 # 입력모드 i : 커서 위치에서 삽입 a : 커서 바로 뒤에서 삽입 o : 현재 커서 다음 라인 부터 삽입 p : 복사내용 삽입 x : 커서 위치의 문자 삭제 Shift + d : 현재 커서 위치의 문자..

Docker 2020. 4. 5. 11
WSL에서 Docker 바로 사용하기
Window를 사용할수 밖에 없다면.. 기존에 Mac 또는 Linux 계열에 익숙한 유저의 경우 어쩔수 없이 Windows PC를 사용해야 하는 경우가 발생할수 있다. 회사에서 Windows를 기본으로 제공한다던가 사용하는 프로그램이 윈도우만 호환되어서 어쩔수 없이 윈도를 사용해야 하는 경우들이 종종 발생하고는 한다. Linux 시스템을 관리에 익숙한 사람에게는 Windows CMD 창은 최악에 가깝다. (사실 어찌 보면 Windows Powershell 이나 Windows 서버 시스템을 관리 하지 않았다는 쪽에 가깝다.) 나도 어쩔수 없이 환경때문에 윈도우즈를 회사에서 사용해하는 경우였다. 이때 Docker를 윈도우에 설치해서 사용할 경우 Windows의 CMD 창으로 Docker를 컨트롤 하는게 너무..

Linux, Shell Script 2019. 9. 4. 0
process infomation 명령어(ps command) 오류시 대처 방법
Ubuntu를 VM으로 설치후 갑자기 ps 명령어가 아래와 같은 에러를 뿌리면서 동작하지 않았다. $ ps ps: error while loading shared libraries: libprocps.so.4: cannot open shared object file: No such file or directory libprocps4의 역할을 찾아 보니 xenial library이며, process information 정보를 뿌려주는 라이브러리에 속해 있는 library 파일이였다. https://packages.ubuntu.com/xenial/i386/libprocps4/filelist 이 파일이 왜 없어 졌는지는 정확하게 추적을 못하였지만 procps package를 apt 로 재 설치후 정상적으로 ..

Linux, Shell Script 2019. 6. 4. 0
Ubuntu / Windows 멀티부팅 순서 조정하기
Linux와 Windows를 같이 사용하다보면, 자동으로 부팅 순서가 Linux로 잡혀있어 PC를 공유 해서 사용하는 경우 윈도우만 사용하는 사용자가 있을 경우에 불편함이 있어 간혹 GRUB 부팅 순서를 조정해야할 경우가 있다. 수정을 원할경우 Linux로 부팅후 아래의 파일을 수정해 주면 된다. GRUB File 수정 $ sudo vi /etc/default/grub GRUB_DEFAULT=0 GRUB_DEFAULT 값을 조정해주면 원하는 값으로 선택되어 아무런 Action이 없다면, 부팅이 진행된다. 이때 윈도우 부팅 순서가 5번째에 위치할 경우(특별히 수정하지 않았다면, 5번째에 위치) “4”를 입력해 주면된다. 시작 값은 “0” 부터 시작한다. 참고 : Grub 주요 옵션 설명 GRUB_TIMEO..
Linux, Shell Script 2018. 8. 10. 0
echo로 바로전 명령 성공 여부 확인 (echo $?)
echo 명령어는 text를 출력하는 용도로 많이 사용되며, script를 작성할때 현재 상태에 대한 메시지를 보여주는 용도로 많이 사용된다. ~ echo This blog is Secuof Blog. This blog is Secuof Blog. ~ echo "This blog is Secuof Blog." This blog is Secuof Blog. ~ Script 를 사용할때 간혹 성공 여부를 체크 해야 할 경우가 발생하는데 아래와 같이 echo 명령어로 간단히 명령어의 성공 실패 여부를 확인 할수 있다. 가령 특정 directory를 이동할때 명령어가 성공하지 못하였다면 아래와 같이 “1”이 출력 된다. ~ cd /~~~~ cd: no such file or directory: /~~~~ ✘ ~..
Linux, Shell Script 2018. 7. 6. 0
Shell Script root로 실행 하였는지 확인 하기 (EUID / RUID)
Shell Script 작성해서 실행할 경우 root 권한인지 확인 해야 하는 경우가 발생한다. 이를 확인하기 위해서 구문 맨 윗쪽에서 if 구문으로 EUID를 확인해서 root 권한인지 확인 하면 된다. 그러기 위해서는 EUID에 대해서 먼저 알아야 한다. EUID / RUID 란? RUID : Real User ID 의 약어로 실제 사용자의 ID를 나타내는 값이다. EUID : Effective User ID의 약어로 어떤 유저권한으로 프로세스를 실행하고 있는지를 나타내는 값이다. shell script 파일을 실행하게 되면 Bash Shell은 항상 순차적으로 실행된다. 따라서 스크립트 맨 위에서 if 구문으로 root가 맞는지 확인 하면 된다. 참고로 Root의 EUID 값은 “0”이다. /etc..
Python 2018. 7. 5. 0
Python 디렉토리 리스팅 웹서버 띄우기 (python web server directory listing)
Python에서 간단하게 Directory Listing 이 가능한 웹 페이지를 띄울수 있다. 서버의 파일을 다른 설정없이 받고자 한다면 이만한 기능이 없다. 단, 이 기능은 보안상 취약하기 때문에 사용하지 않거나 기능이 필요 없다면 반드시 종료를 해야 한다. 명령어 사용 방법은 아주 간단하다. python -m SimpleHTTPServer 5555 ## 맨 뒤는 포트 번호 위와 같이 명령어를 입력한 후 브라우저를 이용해 접속하면 아래와 같이 접근이 가능하다. 접근시 아래와 같이 Access Log가 남게 된다.
Mac 2018. 7. 5. 0
Mac에서 ₩(원화) 대신 `(백 쿼트) 입력하기
Mac에서 `(백 쿼트)를 입력하면 ₩(원화)가 표시가 된다. 저 같은 경우 원화로 표현하게 되면 Slack에서 코드에 대한 입력을 못해서 많이 불편하였다. 백 쿼터로 입력하고자 할경우 아래와 같은 두가지 방법 중 하나를 선택해서 적용 하면 된다. 원화 대신 백 쿼트로 변경 방법 1. ~/Library/KeyBindings/DefaultkeyBinding.dict 파일을 만든후 아래의 코드를 추가 { "₩" = ("insertText:", "`"); } 2. 아래의 내용을 터미털에서 입력 curl -sSL https://gist.githubusercontent.com/redism/43bc51cab62269fa97a220a7bb5e1103/raw/0d55b37b60e0e0bd3d0d7f53995de0a72..
