dev. (140) 썸네일형 리스트형 [Linux] 특정 포트로 tcpdump 뜨기 DB에 연결되어있는 세션의 상태를 확인하기 위해서 tcpdump를 떠야하는 일이 생겼습니다. 처음에는 루트계정으로 뜰 수 있었고 다음에는 계정에 tcpdump를 뜰 수 있는 권한을 받아서 떠야했는데 매번 찾아보는 것이 귀찮아서 간단하게 정리해보도록 하겠습니다. 예시로 맥 터미널에서 명령어를 실행했지만 리눅스 터미널에서 아래와같이 ifconfig 명령어를 실행하면 인터페이스 목록을 확인할 수 있고 그 중에서 tcpdump를 뜰때 사용할 네트워크 인터페이스를 확인할 수 있습니다. tcpdump를 뜨기 위해서는 root계정으로 명령어를 실행하거나 사용하는 계정에 tcpdump를 뜰 수 있는 권한을 주면 됩니다. 아래의 명령어를 실행하여 만들어진 파일을 와이어샤크를 통해 분석하면 됩니다. # : 네트워크 인터페.. [Linux] Port 번호로 PID 확인하기 (netstat, lsof) mysql db와 연결되어있는 port가 어떤 프로세스를 사용하는지 확인해야 하는 경우가 있었습니다. 해당 명령어를 자주 사용할 것 같아서 netstat의 옵션을 사용하여 알아보는 방법과 lsof를 사용하여 알아보는 방법을 기록하도록 하겠습니다. netstat -anltp # ex) 41502 포트의 정보를 알아보고 싶을 때 netstat -anltp | grep 41502 해당 명령어를 수행하면 검색한 포트에 대하여 PID/Program name 에 대한 정보도 확인할 수 있습니다. 명령어를 실행한 계정에서 돌아가고있는 프로세스에 대해서만 PID가 나오기 때문에 모든 정보를 확인하고 싶으면 root 권한으로 확인해야 합니다. PID를 확인했다면 다음의 명령어를 통해 어떤 프로세스인지 자세하게 확인 가능.. [Linux] 일자별로 파일 삭제하기 (mtime) 개발 서버를 확인하던 중 특정 폴더에서 로그파일들이 많이 적재되어있는 것을 확인했습니다. 몇만건 이상의 파일 중에서 최근일자를 제외하고 모두 삭제하기 위해 파일을 정리해주는 데몬을 살펴보던 중 mtime이라는 명령어를 확인하게 되었습니다. mtime 이란? 파일의 데이터가 마지막으로 수정된 날짜와 시간 (일 지정) 해당 명령어를 통해 특정 기간에 작성, 변경된 파일 목록을 조회할 수 있습니다. -mtime n 살펴보기 특정 기간에 작성, 변경된 파일 목록을 조회하기 위해서 find 명령어에 -mtime 옵션을 조회하고 싶은 일자로 함께 조회합니다. # 6월 22일 밤 10시 기준 $ find -mtime -2 # 2일(24시간)전 ~ 현재시간 -> 6월 20일 밤 10시 ~ 현재 $ find -mtime.. [Java] Reflection을 이용하여 invoke() 로 메소드 동적호출 Reflection 이란 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 필드들에 접근할 수 있는 자바 API 자바는 정적인 언어이기 때문에 구체적인 클래스 타입을 알지 못하면 어떤 부분을 실행해야 하는 지 모르기 때문에 이런 문제를 해결하여 동적으로 호출할 수 있게 해주는 것이 Reflection 입니다. invoke()로 메소드 동적 호출하기 예제 ) 부모 클래스에 있는 특정 메소드와 자식 클래스에 오버라이드 되어 존재하는 같은 메소드 중에서 자식 클래스의 메소드를 호출하고 싶을 때 invoke를 사용하여 동적으로 호출하는 로직에 대해 작성해보았습니다. 클래스 구성 invokeEx.java GlobalClass.java ParentClass.java ChildClass.java 클래스.. [Java] System.arraycopy 와 Array.copyOfRange Java에는 배열을 복사하는 여러가지 방법들이 있는데 내가 아는 방법들에 대해 간단하게 정리해보려 합니다. Java 배열 복사 방법 System.arraycopy Arrays.copyOf Arrays.copyOfRange for문으로 hard copy System.arraycopy // System.java @HotSpotIntrinsicCandidate public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); System.java의 arraycopy메소드를 확인하면 다음과 같이 되어있습니다. 변수들을 살펴보면 src : 복사하고자 하는 원본 배열 srcPos : 원본 배열에서 복사할 .. [2023.06.05] iterm2와 oh-my-zsh로 컴꾸하기 오늘은 진짜 일기구요... 꿀같은 연차를 원래는 공부도 하고 책도 읽으면서 보내고싶었는데 (원래 계획만 창대함..) 책 구매는 성공.. ㅋㅎㅋㅎ 그리구 카페와서 몇시간 동안 iterm2로 터미널 꾸미고 있었읍니다... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이렇게 꾸며놨는데 너무 뿌듯하구요... 시간 날때 정리해서 올려보려합니다.ㅎㅎ [mysql] sleep session과 wait_timeout 요 몇주간.. 골머리를 썩었던 DB와의 사투를 적어보려 합니다.. - 문제 상황 : 서비스 내부에서 주기적으로 특정 테이블을 조회하는 쿼리가 있는데 해당 쿼리를 실행할 때 기준 없이 15분간 행이 걸리는 현상이 발생하였습니다. - 해결 시도 : 특정 쿼리에서만 발생한다고 생각하여 행걸리는 쿼리를 메모리에 올린 후 테스트 해봤지만 이번에는 그 다음 쿼리에서 발생하였습니다. 따라서 특정 쿼리에서 발생하는 것이 아니라 DB에 connection할 때 문제가 생기는 것은 아닐까 생각하게 되었습니다. - 원인 파악 과정: netstat netstat -an | grep 3306 | grep EST 해당 명령어를 통해 DB에 붙어있는 세션을 검사하던 중 send-q 부분에 계속해서 버퍼가 빠지지 않는 것을 확인했습.. [Mysql] Mysql Mac m1 (맥 os)에 설치하기 mac m1 에 mysql 을 설치합니다. 터미널을 실행시킨 다음, 아래의 명령어를 입력합니다. brew install mysql - 해당 명령어를 입력하면 쭉 설치되는 과정이 출력되고 좀 기다리면 설치가 완료됩니다. 설치 후, 설치된 mysql 버전을 확인합니다. mysql -V - 현재 mysql 8.0.33이 설치된 것을 확인할 수 있습니다. Mysql 실행 mysql.server start 해당 명령어를 입력하고 SUCCESS! 가 뜬다면 잘 실행이 된 것입니다. 반대로 mysql 실행 중지를 하고 싶다면 아래와 같이 명령어를 입력해주면 됩니다. mysql.server stop Mysql 설정 mysql_secure_installation - 해당 명령어를 입력하면 기본 설정을 할 수 있습니다. .. 이전 1 ··· 8 9 10 11 12 13 14 ··· 18 다음