ls -al /var/log/nginx
선생님 안녕하세요...
강의를 따라하고 있는 학생입니다
다름이 아니라 웹 트러블 슈팅을하는데
강의 영상은 ls -al /var/log/nginx 하면 에러가 떠야 트러블 슈팅을 하던가 하는데
제 실습환경은 너무 잘 돼서요... 제가 뭘 잘못따라가고 있는걸까요?
감사합니다 사진첨부할게요

버추얼박스로 실습중이고
마우스 통합이 불편해서 윈도우 cli 로 ssh 걸어서 실습중입니다
+)

df -h 도 선생님은 100%인데
저는 11%요서 트러블 상황이 안만들어집니다
감사합니다
Câu trả lời 1
0
안녕하세요, 강민구입니다.
결론부터 말씀드리면 잘못 따라오신 게 아닙니다. 지금 화면이 정상이고, 오히려 환경 구축을 제대로 하신 상태입니다.
2-2는 "웹 로그가 하룻밤 사이에 디스크를 다 채워버린 상황"을 전제로 원인을 추적해 나가는 회차입니다. 그런데 이 장애 상태는 강의를 녹화하기 전에 제가 미리 만들어 둔 것이고, 수강생 환경에 자동으로 만들어지지는 않습니다. 실전편에는 장애를 자동으로 발생시키는 시나리오 스크립트가 따로 없기 때문입니다. 즉 여러분의 서버는 로그가 몇백 바이트밖에 안 되는 깨끗한 상태라, 로그 확인이 잘 되는 게 당연합니다.
그래서 이 회차에서 가져가셔야 할 건 "에러를 똑같이 재현하는 것"이 아니라, 원인을 좁혀 들어가는 명령의 흐름입니다.
df -h 로 어느 파티션이 찼는지 본다
cd / 후 du -h --max-depth=1 2>/dev/null | grep G 로 범인 디렉터리를 한 단계씩 좁힌다
마지막에 ls -alh 또는 du -sh * 로 파일 단위까지 확인한다
이 흐름을 지금 상태에서 그대로 쳐보시면, 결과는 다르지만 각 명령이 무엇을 보여주는지는 똑같이 익히실 수 있습니다.
그래도 영상과 같은 상황을 직접 만들어보고 싶으시다면, 아래처럼 일부러 디스크를 채워보셔도 좋습니다. 사실 2-3에서 감시 스크립트를 테스트할 때 이 방법을 그대로 사용합니다.
df -h
cd /var/log/nginx
dd if=/dev/zero of=testfile_delete_me bs=1M count=5000
df -h count 값은 df 결과에서 남은 용량보다 조금 크게 잡으시면 됩니다. 이 상태에서 강의 순서대로 df -h 부터 따라가시면 영상과 같은 흐름을 경험하실 수 있습니다.
다만 한 가지만 꼭 지켜주세요. 루트 파티션이 100%가 되면 그 상태에서는 파일 쓰기가 전부 실패하기 때문에, 실습이 끝나면 반드시 더미 파일을 지워주셔야 합니다.
rm -f /var/log/nginx/testfile_delete_me
df -h 안 지우고 넘어가시면 이후 실습에서 계속 발목을 잡습니다.
참고로 마우스 통합이 불편해서 윈도우 터미널에서 SSH로 접속해 실습하시는 방식은 전혀 문제없고, 오히려 실무 환경에 더 가까운 좋은 방법입니다. 그대로 진행하셔도 됩니다.
혹시 영상에서 나온 에러 메시지가 위 설명과 다르게 기억되신다면, 몇 분쯤 장면인지 알려주시면 그 부분을 짚어서 다시 설명드리겠습니다.
감사합니다.
0
답변감사합니다 선생님 그럼 선생님 말씀은 지금 제 서버는 아직 아무것도 한게 없기에 클린한게 정상이며 잘 못 된게 없고? 선생님은 일부로 용량 꽉차게 만들었으며,
이럴때 어떤 명령어를 사용하라 정도로만 학습을 하면 될까요?
만약 제가 좀 용량을 채우고 싶으면
dd if=/dev/zero of=tesfile_delete_me bs=1m count=5000
요걸 쓰는거구요?
0
네, 세 가지 다 맞게 이해하셨습니다.
지금 서버가 깨끗한 게 정상이고, 강의 화면의 꽉 찬 상태는 제가 촬영 전에 일부러 만들어 둔 것입니다. 잘못 따라오신 게 없습니다.
학습 포인트도 말씀하신 대로입니다. 다만 "이럴 때 이 명령어"로 외우기보다, 범위를 좁혀 들어가는 순서 자체를 손에 익히시는 걸 권합니다.
df -h 로 어느 파티션이 찼는지 → du -h --max-depth=1 로 범인 디렉터리를 한 단계씩 좁히기 → ls -alh 또는 du -sh * 로 파일 단위 확인
실무에서는 범인이 nginx 로그가 아니라 애플리케이션 로그나 오래된 백업, 코어 덤프인 경우가 훨씬 많습니다. 그때도 위 순서는 그대로 통하고, 마지막에 나오는 파일 이름만 달라집니다. 그래서 명령어보다 순서가 남는 게 중요합니다.
dd 명령은 방향은 맞는데 두 군데만 고쳐주세요.
## 잘못된 예
dd if=/dev/zero of=tesfile_delete_me bs=1m count=5000고친 것
## 올바른 예
cd /var/log/nginx
dd if=/dev/zero of=testfile_delete_me bs=1M count=5000첫째, testfile 에서 t 가 하나 빠져 있습니다. 파일명이 달라지면 나중에 지우는 명령과 안 맞아서 지웠다고 생각했는데 용량이 그대로인 상황이 생깁니다.
둘째, bs 단위는 대문자 M 이어야 합니다. 소문자 m 을 쓰면 dd: invalid number: '1m' 에러가 나고 파일이 만들어지지 않습니다. GNU dd 는 K, M, G 만 1024 단위 접미사로 인식합니다.
여기서 count 값은 제 강의 화면 숫자를 그대로 쓰시면 안 되고, 본인 서버의 남은 용량에 맞춰서 정하셔야 합니다. bs=1M 이므로 count 는 그대로 MB 개수가 됩니다.
먼저 df -h 를 치고 루트 파티션 행의 Avail 열을 보세요. 그 값이 실제로 채워야 할 양입니다.
Avail 이 4.0G 면 4 x 1024 = 약 4096, 그보다 조금 크게 count=4300
Avail 이 20G 면 20 x 1024 = 약 20480, 그보다 조금 크게 count=21000
Avail 보다 작게 잡으면 100% 가 안 돼서 강의와 같은 상황이 안 만들어지고, 너무 크게 잡아도 어차피 꽉 찬 지점에서 멈추니 손해는 없습니다. 다만 Avail 이 수십 기가면 그만큼 쓰는 데 시간이 걸리니 여유를 크게 잡을 필요는 없습니다.
중간에 No space left on device 가 뜨면 실패가 아니라 의도한 상태에 도달한 것이니, 그대로 df -h 를 다시 쳐서 100% 를 확인해 보세요.
그리고 실습이 끝나면 반드시 지워주세요. 루트 파티션이 100% 인 상태로 두면 이후 실습에서 파일 쓰기가 전부 실패합니다.
rm -f /var/log/nginx/testfile_delete_me
df -hdf -h 로 사용률이 원래대로 돌아온 것까지 확인하고 다음 강의로 넘어가시면 됩니다.
이번강의
0
10
2
버추얼박스 오류
0
18
1
텔레그램 봇 메세지 전송기능을 여러 서버에 이용하려면
0
205
2
컨테이너에서 다른 컨테이너 접속시
0
172
2
실습 주소에 172.18.1.91를 접속하니 접속이 되지 않습니다
0
173
2
atlassian 접속이 안됩니다
0
262
2
docker 컨테이너로 가상환경 구축 시 init.sh 관련 에러 로그
0
297
2
백업 쉘스크립트 3 질문있어요
0
137
1
telegram 문자보내기 오류
0
264
1
2-2 초기 셋팅 질문드려요!
0
381
3
Linux top 커맨드에 대한 질문
0
188
1
2-0. 진행 후 웹사이트 접속이 안됩니다.
0
336
2
커리큘럼-강의교안
0
347
3
web_backup.sh 실행 시 mount.nfs No host to mount
0
387
1
환경설정 압축파일 해제 불가
0
351
1
SecureCRT 접속 오류
0
885
1
강의에서 로그를 쌓게 하는 vws.tmpcompany.com 이제 접속이 안되는건가요?
0
416
1
강의에서 보여주시는 컨플이나 자료 따로 있을까요?
0
353
1
vagrant up 명령어 실행시
1
408
1
vagrant ssh 접속 에러
0
593
2
서버 구축시 문제 발생
0
475
2
버츄얼박스 설치에러
0
336
1
스크립트 실행 결과 미표시
0
335
1
맥북 지원
0
395
1

