개발노트/LINUX (45) 썸네일형 리스트형 redis-cli 로 pattern 에 해당하는 key 삭제하기 redis-cli -h $READONLY_REDIS_NODE --scan --pattern prefix:pattern::* | awk '{print $1}' | sed "s/^/'/;s/$/'/" | xargs redis-cli -h $MAIN_REDIS_NODE del https://stackoverflow.com/a/58879388/7548600 참고 AWS lambda function 배포 자동화 하기 배경 사내에서 AWS 를 위주로 인프라가 구성되어 있긴 하지만, 거의 대부분 갖춰져있는 구성이 많기도 하고 내가 AWS 자체에 아직 익숙하지 않은 상황이었다. 업무를 보다보면 가~끔 aws lambda function 으로 구성해놓은 부분에 코드 수정이 필요한 경우가 생겼는데, 그 때마다 AWS web console 에서 inline edit 기능을 이용하여 직접 수정했었다. 불편하긴 하지만 다른 방법에 대해 딱히 생각해보지 못했다. 수정할 일이 자주 있는 것도 아니기도 하다는 합리화를 하면서. 이 lambda 코드를 어찌됐든 형상관리를 하긴 해야겠기에 git repo 에다가 똑같은 코드로 관리하고 있긴 했었는데, 이 과정이 많이 번거롭기도 하고 사람이 실수하기 딱 좋았다. 양 쪽(git repo, la.. AWS CodePipeline 을 이용한 배포에서 ApplicationStop 조차 시작하지 않고 보류중(pending) 상태일때는? 배포 생성 후에 ApplicationStop 조차 실행되지 않을 때에는 Target EC2 machine 에 가서 codedeploy-agent 가 제대로 실행되고 있는지 확인을 가장 먼저 하자. 다른 단계에서 hang 이 됐다면 그 문제를 찾아봐야할텐데, 가장 먼저 실행이 돼야하는 ApplicationStop 도 시작조차 안 되고 pending 인 상태가 오랫동안 보이면, codedeploy-agent 가 제대로 실행되고 있는지를 가장 먼저 의심해봐야 한다. 특히, 이미 (다른 사람들이) 갖춰놓은 Infrastructure 가 있고, 거기에서 다른 건 안 건드리고 배포만 하려고 했을 때 대부분 인스턴스는 배포가 잘 되는데 특정 인스턴스에만 배포가 실패하는 경우가 있다. 이 때 codedeploy 자체를.. git branch 전환을 좀 더 간편하게 gcop() { git branch -a | grep -v remotes | grep "$1" | head -n 1 | xargs git checkout } `~/.zshrc` 파일에 위 함수를 선언하기. 그러면 `gcop API-1000` 과 같이 편하게 브랜치의 부분 이름으로 전환을 할 수 있다. ubuntu 18.04 에서 캡스락을 마우스 왼쪽 클릭으로 쓰기 책상에 앉아 컴퓨터를 오래 하다보면, 오른쪽 손으로 클릭을 많이 하다보면 왼손의 사용률과 격차가 심해지면서 오른 손목이 가끔 저려올 때가 있다. 한.. 1년 반 전 쯤, 유난히 오른손이 많이 불편한 날이 있었는데, 그 날을 계기로 그 당시에 회사에서 쓰는 키보드(Cougar)에서 UX 툴을 이용하여 캡스락을 클릭으로 변경해서 잘 쓰고 있다. 그런데, 집에 있는 데스크톱 2대 중, 지금 이 글을 쓰고 있는 머신은 운영체제가 우분투이다. (18.04) 키보드는 한성컴퓨터의 무접점 키보드인데, 많이 사용하는 컴퓨터는 아니라 큰 불편을 못 느끼고 있다가, 요즘 다시 많이 쓰는 것 같은데 오른손으로 클릭을 몇 번 하다보니 뭔가 어색함이 느껴졌다. 그래서 우분투에서도 캡스락을 클릭으로 사용하기 위해 찾아보았고, 의.. 리눅스에서 프로그램 업데이트 후 dock 에 등록 안 될 때 집에 2대의 데스크톱 컴퓨터 중 1대는 우분투 데스크톱이다. 공부할 때 많이 쓰는 머신인데, 공부를 영 안 했는지 최근 너무 오랜만에 켰다. 그리고 개발툴인 idea, pycharm 등 프로그램 업데이트를 하고 싶어졌다. 근데 윈도우즈에선 .exe 로, 맥에선 .dmg 로 설치하다보면 알아서 예전 버전을 삭제해주고, path 도 잡아주고 사용자가 별 다른 액션을 하지 않아도 깔끔하게 업데이트 된 버전을 사용할 수 있는 반면에, 리눅스 데스크톱을 쓰다보면, 사용하는 프로그램은 대부분 .tar 로 배포된다. jetbrains 의 프로그램도 그러하다. 그래서 사용자가 tar 파일을 압축풀고 원하는 설정(dock 에 추가, 터미널에서 실행 가능하게 등등)은 직접 해줘야 하는데, 그 중 dock 에 등록이 안 되.. Openvpn 운영하며 생긴 이슈 정리 1. 한 번 접속 후 잘 작동하던 vpn 서버에서 갑자기 AUTH_FAILED 오류를 뱉으며 클라이언트의 접속이 끊김 - vpn config 에 verb level 이 너무 높아 로그 파일이 급격히 커졌고, 로그 파일이 몇시간 만에 약 2.14GB 정도가 되었다. 그 이후로 로그에 더 이상 로그가 쌓이지 않았고, 클라이언트에서 접속을 시도하여도 AUTH_FAILED 오류가 나면서 접속이 되지 않았다. - SSH 로 vpn server 접속 후 로그 파일을 truncate 하고 접속 테스트를 하면 잘 됐음 - verb level 을 조정하고, 근본적인 처방으로 logrotate 를 설정하였음 2. site to site 연결을 openvpn 터널을 자체 구축하였는데 udp 로 할 경우, 안정적으로 운영되다.. [Centos7] Paths 가 만들어 내는 임시 파일은 내가 지우지 않아도 될까? 요즘 스프링 부트로 파일 업/다운로드 시스템을 구현하고 있다.여러 프로젝트에 흩어져 있고 제각각인 구현 방법과 어느 시스템에서 이 파일을 만들고 업로드했는지 찾는데 드는 비용이 만만치 않아서, 시스템을 일원화 하기로 했다. 그렇게 java.nio.file.* 패키지를 이용하여 개발하는 중, Files.createTempFile() 라는 메소드를 봤는데 이 API 가 생성하는 파일이 계속 쌓이는 건 아닐까 하는 노파심/걱정이 생겼다. 그래서 조금 찾아봤다.서버의 운영체제 배포판은 Centos 7 이고`java.io.tmpdir` 에 대해서 별다른 설정을 하지 않은 Spring Boot 앱은 `/tmp` 디렉토리를 임시 파일 공간으로 사용하고 있다.그렇다면, /tmp 디렉토리는 자바 뿐만이 아니라 리눅스도 .. 이전 1 2 3 4 5 6 다음