Linux/ubuntu
-
binary file의 이유로 grep이 파일 전체를 검색하지 못할때Linux/ubuntu 2024. 10. 7. 19:46
로그에 특정 문자열을 검색을 위해 grep을 사용하는데, 전체 로그 상에서 발견된 로그가 grep을 통해 추출한 로그에서는 발견 안 된 케이스가 존재했다. 추출한 파일에는 binary file ~ matches란 짧은 로그가 적혀 있었다. 이 때 어떻게 전체 파일을 서치할 수 있을까? grep에서 16진수로 표현된 문자열을 만나게 되면 검색을 하는 도중 중간에 멈추어 버린다. 그리고 그 이전에 서치했던 결과물만 결과로 넘어가 버린다. 이럴 경우 '--text' 옵션을 넣어주면 된다grep --text : 이진 파일을 텍스트 파일로 간주하고 검색을 수행하도록 지시 이렇게 하면 이진 파일도 텍스트 파일로 간주하여 지정한 패턴을 계속해서 수행하여 전체 파일을 검색할 수 있다.
-
유용한 스크립트 모음Linux/ubuntu 2024. 9. 23. 14:09
구분자(space)를 탭으로 취환하여 명령결과를 보기 쉽게 바꾸어줌mount | column -t'coloumn -t'를 사용하여 터미널에서 읽기 쉽게 보여줌 메모리 많이 사용하는 프로세스 top 10 ps aux | sort -nr -k 4 | head -10 특정 시간이 지나면 명령어를 자동 종료timeout 5s toptimeout [Ns] [COMMAND]top -d 1 현재 위치 하위의 디렉토리별 파일 수 카운트find . -xdev -type d -exec /bin/echo -n "{}: "\; -exec sh -c "ls {} | wc -l" \;-xdev 어떤 프로세스가 io interrupt를 기다리고 있는지 확인while true; do date; ps auxf | awk '{if(..
-
리눅스 환경에서 작업한 프로그램 트러블 슈팅 방법Linux/ubuntu 2024. 9. 4. 17:17
리눅스 환경에서 내가 작성한 프로그램에 문제가 생겼다면, 어떻게 분석할까?아래와 같은 순서로 문제에 접근해보자1. 내가 작성한 프로그램을 재부팅 했을때 동일한 에러가 나는지 확인2. 1.이 아니라면 부하를 확인3. 2.이 아니라면 메모리 사용량 확인4. 3이 아니라면 디스크 사용량 확인 내가 작성한 프로그램을 재부팅 했을때 동일한 에러가 나는지 확인재부팅을 통해 동일한 문제가 발생되는지 재현을 해보자 부하를 확인해보자컴퓨터의 로드를 확인가능 uptime cat /proc/cpuinfo 메모리 사용량을 확인해보자메모리 사용량 확인free -m 디스크 사용량을 확인해보자용량 많이 차지하는 디렉토리 찾기 du -h --max-depth=1 2>/dev/null du -sh *
-
원하는 로그 기록 남기기Linux/ubuntu 2024. 4. 23. 14:18
파일에 실행되는 표준출력의 방향을 바꾸어 원하는 파일에 로그를 담을 수 있다 nohup ${실행파일} >> ${로그 파일} & 리눅스에서 표준입력, 표준출력, 표준에러는 아래 숫자와 맵핑되어 있다 0 : 표준입력 1 : 표준출력 2 : 표준에러 이것을 이용하여 아래와 같이 응용할 수 있다 filename 출력 방향을 바꾼다. >>filename 출력에 덧붙인다. 2>filename 오류의 방향을 바꾼다. 2>>filename 오류의 방향을 바꾸고 덧붙인다. &>filename 출력과 오류를 리다이렉션 한다. >&filename 오류와 출력을 리다이렉션 한다. 1>&2 출력을 오류로 내보낸다. 2>&1 오류를 출력으로 내보낸다. >| 출력을 리다이렉션 할 때 NOCLOBBER 설정을 무시한다 filenam..
-
프로세스 로그 출력 및 모니터링Linux/ubuntu 2023. 10. 17. 12:56
0 - 표준입력 1 - 표준출력 2 - 표준출력 nohup ./${실행 파일 name} >> metric.log // 표준 출력과 에러를 각각의 파일에 출력하고 싶을때 nohup ./${실행 파일 name} 1 >> metric.log 2 >> error.log // 표준 출력과 에러를 하나의 파일에 출력하고 싶을때 nohup ./${실행 파일 name} 1 >> metric.log 2>&1 // metric.log 출력에서 keyword 아래로 20줄 출력 tail -f metric.log | grep ${추출할 keyword} -A 20
-
open files 설정 변경Linux/ubuntu 2023. 8. 4. 13:44
하나의 프로세스는 file descripotr 생성에 제한이 있다. 이 설정을 확인하기 위해서는 아래 설정을 통해 확인이 가능하다 ulimit -a 여기서 open files 뿐만아니라 core file size나 max user processes와 같은 설정도 확인할 수 있다. (core file size가 0일 경우 core 파일이 생성되지 않음) 뿐만 아니라, ulimit 명령어는 아래와 같이 설정 수정도 가능하다. ulimit -n 30000 하지만, 위와 같이 설정을 변경하더라고 현재 활성화된 터머널에서만 해당 설정값이 유지된다. 모든 설정을 영구적으로 변경하기 위해서는 '/etc/security/limits.conf'에서 다음과 같이 파일의 내용을 추가시켜줘야 한다. sudo vi /etc/s..
-
core 파일 생성Linux/ubuntu 2023. 4. 12. 11:41
c/c++ 실행 중, 에러로 인한 프로세스가 멈추면 core 파일 생성 ulimit -c unlimited sysctl kernel.core_pattern --> core 파일 생성되는 위치 확인 만약, core 파일이 생성되는 위치를 수정하고 싶다면 /etc/sysctl.conf 파일 수정 kernel.core_pattern = ${코어 파일 생성 위치} ${코어파일 생성명} 코어 파일 생성 위치 ex) /home/bong/Desktop/core/ (끝에 / 유의) 코어파일 생성명 ex) core.%e.%p.%t sysctl -p 를 통해 수정한 파일 적용