sort
HPC 시스템에서 대용량 파일(예: 500GB 이상)을 실행하고 있습니다 . sorts
여러 작업이 단일 노드에서 실행될 수 있으며 sort
작업의 370GB RAM 제한이 초과되면 해당 노드의 1TB 디스크 sort
로 이동됩니다 . 공간이 부족 /scratch
하면 예상대로 정렬이 중단됩니다. 다른 인스턴스를 위한 공간을 확보하기 /scratch
위해 이 인스턴스에서 생성된 특정 파일을 정리하고 싶습니다 . 어떤 파일이 생성되었는지 확인할 수 있는 방법이 있나요 ?sort
sort
sort
답변1
실행 실패 후 정리하려면 sort
유틸리티가 종료된 후 남겨진 임시 파일이 무엇인지 정확히 알아야 합니다. 임시 파일 생성을 나중에 삭제되는 디렉터리로 제한하면 더 쉽습니다.
를 사용하여 임시 디렉터리를 만든 다음 mktemp
경로 이름을 설정하여 sort
해당 디렉터리를 사용할 수 있습니다 .TMPDIR
tmpdir=$( mktemp -d /scratch/sort-XXXXXXXX )
trap "rm -rf '$tmpdir'" EXIT
TMPDIR=$tmpdir sort -t$'\t' -k1,1 -k2,2 -k5,5nr -o sorted.tab --parallel=4 unsorted.tab
이는 아래에 임시 디렉토리를 생성하고 /scratch
해당 경로 이름을 쉘 변수에 지정한 tmpdir
다음 TMPDIR
호출 시 환경 변수를 이 값으로 설정합니다 sort
.
유틸리티 에는 로 사용할 수 있는 옵션이 sort
있을 수 있지만 환경 내에서 설정하는 것은 이식 가능합니다.-T
-T "$tmpdir"
TMPDIR
sort
호출 후에 설정한 트랩은 mktemp
스크립트가 종료될 때마다 디렉터리가 삭제되도록 보장합니다. 분명히 트랩을 사용하는 대신 rm -rf "$tmpdir"
호출 후에 이를 수행 할 수 있습니다 .sort