#배경
1. Azure에 Linux환경 구축 후 명령어 사용 시 오류가 발생 하였다.
a. cannot create temp file for here-document: No space left on device
i. 디스크 용량이 다 차서 생긴 문제라고 함
#작업내용
1. df -h 를 사용해 디스크 사용량을 조회
a.
i. 특정 폴더에서 100%를 사용중이라고 조회됨
2. 좀 더 자세한 정보를 위해 어떤 폴더가 얼마나 잡아 먹고 있는지 조회하기 위해 다음 명령어 수행
sudo du -ckx | sort -n > /tmp/duck-root
a. 디스크 부족으로 인하여 아래와 같은 오류 발생
sort: fflush failed: 'standard output': No space left on device
sort: write error
3. /dev/hda 및 /dev/hda1
a. hda의 마지막 단어는 위치를 의미 한다.
단어 | 의미 |
a | primary master |
b | primary slave |
c | secondaru master |
d | secondary slave |
4. 아래 링크를 참고하여 아래 4가지 명령어로 좀더 좁혀보았다.
a. 수행 명령어
명령어 | 의미 |
du -hs 폴더 | 해당 폴더 용량 확인 |
du -hs * | 현재폴더에 있는 폴더 및 파일 용량 확인 |
du -hsx * | sort -rh | head -n 10 | 현재폴더에 있는 폴더 및 파일 중에서 용량이 큰 것 순으로 10개 보기 |
-d, --max-depth=1 | 하위디렉토리 갯수 지정 (1이면 해당 디렉토리 하위 1개까지만 출력) |
리눅스 디렉토리 용량 확인 du - 제타위키
다음 문자열 포함...
zetawiki.com
c. 이에 특정 로그 파일이 문제임을 확인하였고 아래 링크를 참고하여 아래 명령어를 이용하였다.
i. find -name "LOG.2019-07*" -delete
리눅스 특정파일명만 삭제
리눅스와 같은 Text UI환경에서는 특정 파일들만 골라서 삭제하기가 까다롭습니다. rm 명령어와 |grep 의 조합으로 가능할까 싶었는데 find 명령어를 이용하여 가능했습니다. find . -name "*pwnbit.kr*" -exe
pwnbit.kr
d. 팀장님께서 로그를 좀 분석해보고 어떤 로그가 이렇게 쌓이는지 보고 해당 로그의 레벨을 바꾸도록 해야겠다고 하셨다.
e. 로그내용을 분석해보니 아래 작업들이 1분 단위로 반복되고 있었다.
1번 작업 진행 30초 후 2번 작업 진행 30초 후 1번 작업 진행
i. 정책 리스트를 검색
ii. 사용된 쿼리 출력(사용 횟수, 정책 업데이트 등)
f. logback.xml에서 레벨을 INFO로 바꾸어 DEBUG가 찍히지 않게 수정하였다.
g. 원래는 mybatis-dbname-config.xml에서 setting name="loglmpl" value="SLF4J"를 빼면 된다고 하신다.
#배운점
1. 분석을 좀더 다양한 관점에서 접근하고 좀더 깊이 있게 수행해야 한다.
'개발 > Unix' 카테고리의 다른 글
[Solaris] Solaris에서 c프로그램 다운/%s에 NUL (0) | 2021.05.02 |
---|---|
[Linux] 압축 (0) | 2020.09.22 |
[Linux] 포트열기(Port Open) (0) | 2020.09.22 |
[Linux] ip조회 (0) | 2020.09.20 |
[Linux] Windows에서 Linux로 파일 및 폴더 옮기기 (0) | 2020.09.19 |