실패한 업로드를 자동으로 정리하는 방법은 무엇입니까? PHP는 이를 여기에 저장하며 /tmp
모든 파일 이름은 다음과 같습니다 phpAbCDeF
(기본적으로 php 다음에 6자가 옵니다).
다음 명령을 사용할 수 있다는 것을 알고 있습니다.
find /tmp -name php\*
하지만 이렇게 하면 삭제하고 싶지 않은 PHP로 시작하는 다른 임시 파일(다른 프로세스에서 생성됨)도 삭제됩니다.
해결책을 제안해주세요.
답변1
파일 이름 지정 방법에 따라 다릅니다. 몇 가지 제안이 있습니다 :
php
이름 뒤에 6자가 오는 모든 파일을 삭제하십시오 .find /tmp -type f -name 'php??????' -delete
php
이름이 및로 시작하는 모든 파일을 삭제합니다 .비어 있는:find /tmp -type f -name "php*" -empty -delete
더 나은 접근 방식은 서버의 파일을 편집
php-ini
하고 변수를 설정하는 것 입니다upload_tmp_dir
. 이렇게 하면 해당 디렉터리의 모든 항목을 삭제할 수 있습니다. 예를 들어 다음과 같이 설정한 경우php.ini
:upload_tmp_dir=/tmp/phptmp
그런 다음 폴더에서 모든 파일을 간단히 삭제할 수 있습니다.
rm /tmp/phptmp/*
답변2
작성/수정이 가능한 애플리케이션이라면 register_shutdown_function
임시 파일을 생성할 때 사용하는 것이 좋습니다. 이렇게 하면 unlink
스크립트가 중단되더라도 가능합니다.