한 폴더에 파일 갯수가 너무 많아서 지울 수 없는데 어떻게 해야할지 질문 드립니다.
글쓴이: haseong / 작성시간: 월, 2006/08/21 - 4:41오후
안녕하세요
더운데 건강들 조심 하시구요..
질문드릴께 하나 있습니다.
제목처럼 특정 디렉토리 안에 파일이 엄청나게 쌓인것 같습니다.
환경은 fedora3로 node가 9개인 64bit cluster를 운영하고 있습니다.
각 노드는 node1에 있는 디스크를 nfs로 연결해서 공유하고 있구요
그런데 한 사용자의 프로그램이 특정 디렉토리 안에 많은 양의 파일을 생성한 것 같습니다.
갯수나 크기도 확인이 되질 않는군요.. 약 3일 밤낮 돌면서 생성한 것 같습니다
해당 프로그램이 종료가 되었는데도
node1의 프로세스들중에 updatedb가 cpu4개를 거의 full로 약 4일째 사용하고 있습니다. (말씀 드렸듯이 node1의 디스크를 nfs로 공유하고 있어서요)
제가 미리 체크하지 못한것도 잘못했지만.. 일단 이 파일들을 지우고 싶습니다.
해결방법이 어떤게 있을까요..
그럼 부탁드립니다!!
Forums:
디렉토리를 통째로
디렉토리를 통째로 지우면 되지 않을까요?
node1(파일서버)쪽에
node1(파일서버)쪽에 직접 들어가셔서 보시는게 가장 빠를 겁니다.
ls -1 로 보시거나(안그러면 ls가 내장 소팅을 해 버리므로 시간이 오래 걸립니다)
find . -print 로 보시면 시간은 오래 걸려도 보일 겁니다.
그 다음에는 find로 지워버리면 되겠지요.
--
익스펙토 페트로눔
--
익스펙토 페트로눔
감사합니다.
find . -print
이걸로 파일 찾아서 지우고 있습니다
엄청 오래걸리는군요..
find로 지운다는건 어떤식으로 하는건가요
저는 그냥 파일 이름 보고 rm 으로 지우는데 것도 너무 많으면 에러떠서
겨우겨우 몇개씩 지우고 있네요..
감사합니다 좋은하루 보내세요^^!!
for I in `ls -1 | head -100`
for I in `ls -1 | head -100` ; do rm $I ; done
이런 식으로 하시면 ls -1의 결과를 위에서부터 100개씩 끊어서 삭제가 가능합니다.
find로 한번에 지우시려면,
find . -type f -exec rm {} \;
이렇게 지우시면 됩니다.
오버헤드를 조금 줄이려면
많이는 아니고 조금..
for fd in * ; do rm ${fd} ; done
ls와 head, 그리고 셸만큼 줄지 않을까요.
放下着-----
내려놓으려는 마음도 내려놓기
放下着-----
내려놓으려는 마음도 내려놓기
파일이 너무 많으면 *
파일이 너무 많으면 * 에서 에러가 날겁니다.
find가 효율이 제일 좋을듯
파일이 많아서 ls나
파일이 많아서 ls나 fd로 하는건 에러가 나네요
에러라기 보다는.. root로 실행하는데 실행하면 조금 있다가 root 밖으로 나가버리는군요
왜 그런지는 모르겠지만..
그래서 검은해님께서 알려주신 find를 써서 지우고 있습니다.
답글주신 모든분들께 감사 드립니다. 꾸벅~
opendir, readdir, unlink
find도 같은 방법이겠지만 위 함수를 써서 프로그램 짜는것도 괜찮을거 같습니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소,
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
흠.. 오래전 글인데,
흠.. 오래전 글인데, 답변달려니 조금 ,,, ^^
가장 빠르면서 간단한 방법은 다음과 같습니다.
find | perl -neunlink
자세한 내용은
http://perlog.pung96.net/entry/%ED%95%9C%EA%BA%BC%EB%B2%88%EC%97%90-%EB%A7%8E%EC%9D%80-%ED%8C%8C%EC%9D%BC-%EC%A7%80%EC%9A%B0%EB%8A%94-%EC%84%B8%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95
find . -print | xargs rm
find . -print | xargs rm
find 에 한표
댓글 달기