실수로 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