오픈소스/ubuntu10 binary file의 이유로 grep이 파일 전체를 검색하지 못할때 로그에 특정 문자열을 검색을 위해 grep을 사용하는데, 전체 로그 상에서 발견된 로그가 grep을 통해 추출한 로그에서는 발견 안 된 케이스가 존재했다. 추출한 파일에는 binary file ~ matches란 짧은 로그가 적혀 있었다. 이 때 어떻게 전체 파일을 서치할 수 있을까? grep에서 16진수로 표현된 문자열을 만나게 되면 검색을 하는 도중 중간에 멈추어 버린다. 그리고 그 이전에 서치했던 결과물만 결과로 넘어가 버린다. 이럴 경우 '--text' 옵션을 넣어주면 된다grep --text : 이진 파일을 텍스트 파일로 간주하고 검색을 수행하도록 지시 이렇게 하면 이진 파일도 텍스트 파일로 간주하여 지정한 패턴을 계속해서 수행하여 전체 파일을 검색할 수 있다. 2024. 10. 7. 유용한 스크립트 모음 구분자(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(.. 2024. 9. 23. 리눅스 환경에서 작업한 프로그램 트러블 슈팅 방법 리눅스 환경에서 내가 작성한 프로그램에 문제가 생겼다면, 어떻게 분석할까?아래와 같은 순서로 문제에 접근해보자1. 내가 작성한 프로그램을 재부팅 했을때 동일한 에러가 나는지 확인2. 1.이 아니라면 부하를 확인3. 2.이 아니라면 메모리 사용량 확인4. 3이 아니라면 디스크 사용량 확인 내가 작성한 프로그램을 재부팅 했을때 동일한 에러가 나는지 확인재부팅을 통해 동일한 문제가 발생되는지 재현을 해보자 부하를 확인해보자컴퓨터의 로드를 확인가능 uptime cat /proc/cpuinfo 메모리 사용량을 확인해보자메모리 사용량 확인free -m 디스크 사용량을 확인해보자용량 많이 차지하는 디렉토리 찾기 du -h --max-depth=1 2>/dev/null du -sh * 2024. 9. 4. 예약된 포트 확인 방법 netstat을 통해 process가 배치되어 있지 않는 포트는 무엇을 위한 포트인지 알 수 있을까?정답은 알 수 있다 아래 명령어를 통해 리눅스에서 이미 예약된 포트를 확인 가능하다## 예약된 포트(well-kown 포트)를 알 수 있음vi /etc/services 2024. 9. 3. 원하는 로그 기록 남기기 파일에 실행되는 표준출력의 방향을 바꾸어 원하는 파일에 로그를 담을 수 있다 nohup ${실행파일} >> ${로그 파일} & 리눅스에서 표준입력, 표준출력, 표준에러는 아래 숫자와 맵핑되어 있다 0 : 표준입력 1 : 표준출력 2 : 표준에러 이것을 이용하여 아래와 같이 응용할 수 있다 filename 출력 방향을 바꾼다. >>filename 출력에 덧붙인다. 2>filename 오류의 방향을 바꾼다. 2>>filename 오류의 방향을 바꾸고 덧붙인다. &>filename 출력과 오류를 리다이렉션 한다. >&filename 오류와 출력을 리다이렉션 한다. 1>&2 출력을 오류로 내보낸다. 2>&1 오류를 출력으로 내보낸다. >| 출력을 리다이렉션 할 때 NOCLOBBER 설정을 무시한다 filenam.. 2024. 4. 23. tcp 서버 성능 평가 iperf 설치sudo apt-get update sudo apt-get install iperf iperf -c -p 2024. 1. 12. 이전 1 2 다음