/tmp에서 실패한 PHP 업로드를 자동으로 정리하는 방법은 무엇입니까?

/tmp에서 실패한 PHP 업로드를 자동으로 정리하는 방법은 무엇입니까?

실패한 업로드를 자동으로 정리하는 방법은 무엇입니까? PHP는 이를 여기에 저장하며 /tmp모든 파일 이름은 다음과 같습니다 phpAbCDeF(기본적으로 php 다음에 6자가 옵니다).

다음 명령을 사용할 수 있다는 것을 알고 있습니다.

find /tmp -name php\*

하지만 이렇게 하면 삭제하고 싶지 않은 PHP로 시작하는 다른 임시 파일(다른 프로세스에서 생성됨)도 삭제됩니다.

해결책을 제안해주세요.

답변1

파일 이름 지정 방법에 따라 다릅니다. 몇 가지 제안이 있습니다 :

  1. php이름 뒤에 6자가 오는 모든 파일을 삭제하십시오 .

    find /tmp -type f -name 'php??????' -delete
    
  2. php이름이 및로 시작하는 모든 파일을 삭제합니다 .비어 있는:

    find /tmp -type f -name "php*"  -empty -delete
    
  3. 더 나은 접근 방식은 서버의 파일을 편집 php-ini하고 변수를 설정하는 것 입니다 upload_tmp_dir. 이렇게 하면 해당 디렉터리의 모든 항목을 삭제할 수 있습니다. 예를 들어 다음과 같이 설정한 경우 php.ini:

    upload_tmp_dir=/tmp/phptmp
    

    그런 다음 폴더에서 모든 파일을 간단히 삭제할 수 있습니다.

    rm  /tmp/phptmp/*
    

답변2

작성/수정이 가능한 애플리케이션이라면 register_shutdown_function임시 파일을 생성할 때 사용하는 것이 좋습니다. 이렇게 하면 unlink스크립트가 중단되더라도 가능합니다.

관련 정보