많은 수의 파일 삭제

많은 수의 파일 삭제

실수로 800만 개의 파일을 생성했고 이를 삭제하려고 할 때마다 rm 프로세스가 모든 디스크 IO를 소비했기 때문에 서버가 거의 충돌했습니다(서버는 원격이고 콘솔이 없었습니다).

이와 같은 것이 작동해야합니까? 즉, ionice를 호출하시나요?

sudo find /var/lib/php5/ -type f -exec ionice -c3 rm -f {} \;

답변1

난 이걸 할거야...

sudo ionice -c3 find /var/lib/php5/ -type f -exec  rm -f '{}' +

(제 생각엔) +xargs에 더 가깝기 때문에 대용량 파일을 처리할 때 더 효율적입니다. 전체 명령에 ionice를 넣으면 각 하위 명령은 물론 검색 자체도 이온화됩니다. 이것을 시도해 보셨나요?

너도 할 수 있어매우 좋은 nice -n 19 ionice -c 3 programname이것이 필요하지는 않지만.

아니면 팁을 받아보세요@알렉스당신은 할 수

ionice -c3 find /var/lib/php5/ -type f -delete

답변2

나는 다음과 같이 할 것입니다 :

import os
os.nice(19)
dir = "/var/lib/php5/"
bad_files = [os.join(dir, file) for file in os.listdir(dir)
                     if is_bad(os.join(dir, file))]
for junk in bad_files:
  os.unlink(junk)
  time.sleep(0.1)

답변3

어쩌면 너무 어리석을 수도 있습니다.

전체 디렉토리 구조를 삭제하는 것은 어떻습니까?

find /var/lib/php5 -type d -print > /tmp/directories
rm -r /var/lib/php5
cat /tmp/directories | xargs mkdir

관련 정보