인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

RealChobo님의 프로필 이미지

작성한 질문수

15일간의 빅데이터 파일럿 프로젝트

파일을 카피하거나 옮기면 파일이 사라집니다

작성

·

1K

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
[빅데이터 수집] 7. 수집 파일럿 실행 5단계 - 수집 기능 테스트를 진행중인데
 
파일을 옮기려고 하는데 파일이 사라집니다.
 
mv /home/pilot-pjt/working/SmartCar/SmartCarStatusInfo_20160101.txt
 
위의 명령어를 치고 SmartCar 폴더로 가서 잘 들어갔는지 확인해보면 비어있습니다.
 
따로 에러가 나지도 않고 잘 옮겨진 것 같아서 cli가 아닌 gui 환경으로 변경 후
 
직접 복사/붙여넣기를 해서 넣어보니 넣고 나서 몇초 후에 파일이 자동으로 삭제되는 것을 확인했습니다.
 
혹시나 싶어서 권한도 전부 부여했습니다(chmod 777 -R working에 주고, 안 돼서 pilot-pjt에 줘서 진행)
 
그래도 안 돼서 그냥 뒤의 내용을 진행하니 뒤에 내용들은 잘 됩니다.
 
원래 사라지는 건지 에러라면 왜 그런지 알 수 있을까요?

답변 1

0

Big.D님의 프로필 이미지
Big.D
지식공유자

안녕하세요! 빅디 입니다.

실행하신 아래 명령(mv)은 이동 명령이니깐 SmartCarStatusInfo_20160101.txt 파일이 이동 되고, 해당 파일이 있었던 SmartCar 디렉토리에는 없는것이 정상입니다.

mv /home/pilot-pjt/working/SmartCar/SmartCarStatusInfo_20160101.txt

김찬범 님이 실행하신 전체 명령은 아마도 다음과 같았을 텐데요..

mv /home/pilot-pjt/working/SmartCar/SmartCarStatusInfo_20160101.txt /home/pilot-pjt/working/car-batch-log/

위의 mv 명령은..

"SmartCarStatusInfo_20160101.txt" 파일을  "/home/pilot-pjt/working/car-batch-log/" 디렉토리로 이동 시키라는 명령입니다.

이 mv 명령이 정상적으로 수행 되었다면 /home/pilot-pjt/working/car-batch-log 경로에 해당 파일이 있을 겁니다.

리눅스 환경 및 명령이 처음이면 이러한 내용들이 다소 혼란스러울 수 있습니다. 

하지만 파일럿 프로젝트를 완주 하실때 쯤이면, 익숙해져서 실전 프로젝트에선 많은 도움이 되실 겁니다.

- 빅디 드림

RealChobo님의 프로필 이미지
RealChobo
질문자

답변의 내용은 확인하였고 제가 잘못 질문을 드린 것 같네요. SmartCar 폴더의 파일을 mv명령어를 통해 car-batch-log 폴더로 이동한다는 것은 알고 있습니다. 하지만 car-batch-log 폴더에도 파일이 없더군요. 

1. mv 명령어를 통해 "SmartCarStatusInfo_20160101.txt" 파일을  "/home/pilot-pjt/working/car-batch-log/" 디렉토리로 이동시켰다.

2. cd 명령어로 car-batch-log에 들어갔다.

3. ls, ll, ls -ltr 명령어를 통해 디렉토리 내부에 있는 파일 내용 확인 시 아무것도 나오지 않는다.(total 0으로 표시되며 폴더 내부에 파일이 없다고 나옴)

4. 파일이 증발해버려서 gs -ef 명령어로 실행중인 프로세스를 kill 한 후 파일을 재생성하기 위해 다시 java -cp 명령어 진행

5. 1번에서 4번 내용을 반복(이상을 감지)

6. car-batch-log 폴더에 파일이 생성되는 것이 확인되지 않아 파일을 직접 넣기로 함(gui 환경으로 변환)

7. gui환경에서 SmartCar 폴더 내부에 있는 "SmartCarStatusInfo_20160101.txt" 파일을 복사 후 car-batch-log에 다이렉트로 복사 진행

8. car-batch-log에 "SmartCarStatusInfo_20160101.txt" 파일이 생성되는 것을 확인

9. 약 10~20초 정도 지나면 "SmartCarStatusInfo_20160101.txt" 파일이 사라지는 것(삭제되는 것)을 확인

 

 

Big.D님의 프로필 이미지
Big.D
지식공유자

아~네!! 잘알겠습니다.

처음 문의 하셨을때 아마도 위와같은 상황 이었을거라 생각도 했습니다. ^^

결론부터 말씀드리자면, 정상적인 상황입니다.

 car-batch-log 디렉토리는 플럼의 SpoolDir 컴포넌트가 파일이벤트를 모니터링 하는 폴더입니다.

플럼 에이전트(SmartCar_Agent)를 등록하고 플럼이 실행중이라면, car-batch-log 디렉토리의 파일(SmartCarStatusInfo_20160101.txt)을 플럼이 수집해서 타겟영역으로 전송하고, 전송이 완료 되면 car-batch-log 디렉토리의 파일(SmartCarStatusInfo_20160101.txt)을 삭제하는 과정이 진행된겁니다. 추가로 해당 단계에선 타겟영역으로 전송 하진 않고, 수집한 파일의 데이터를 로그파일에 쓰고 종료되는 프로세스만 진행 됩니다.

관련 내용은 "5. 수집 파일럿 실행 3단계 - 플럼 기능 구현" 강의에서 설명 하고 있으니, 다시 한번 봐주시면 될 것 같습니다.

- 빅디 드림

RealChobo님의 프로필 이미지
RealChobo
질문자

감사합니다. 다시 한 번 봐야겠네요