2012-09-08 5 views
1

주어진 디렉토리에 엄청난 수의 작은 파일을 생성하는 Python 스크립트가 Linux에서 실행됩니다. 그러나 ext4와 같은 많은 리눅스 파일 시스템은 생성시에 고정 된 수의 inode를 가지고 있기 때문에, 시작하기 전에 그 많은 파일을 그 디렉토리에 저장할 수 있는지 확인하고 싶습니다. 명령 줄에서 df -i /some/directory을 사용하여이 번호를 볼 수 있습니다.디렉토리를 포함하는 파티션에있는 무료 inode 수

파이썬에서 디렉토리가 존재하는 파일 시스템에있는 무료 inode의 수를 어떻게 알 수 있습니까?

답변

3

statvfs 시스템 호출을 사용하여 수행 할 수 있습니다. 파이썬 (2와 3 모두)에서는 os.statvfs을 사용하여 액세스 할 수 있습니다. 이 호출은 경로가 지정하는 파일/디렉토리를 포함하는 파일 시스템을 설명합니다.

그래서, 무료 아이 노드의 수를 얻을

#import os 
os.statvfs('/some/directory').f_favail 

는 또한,이 아이 노드의 일부 비율이 루트 사용자를 위해 예약되어있을 가능성이 사용할 수 있습니다. 스크립트가 루트로 실행 중이고 예약 된 inode를 사용하도록하려면 f_favail 대신 f_ffree을 사용하십시오.