>  기사  >  백엔드 개발  >  이미지를 업로드할 수 없는 특정 PHP 백그라운드 시스템의 처리 과정을 기록합니다.

이미지를 업로드할 수 없는 특정 PHP 백그라운드 시스템의 처리 과정을 기록합니다.

藏色散人
藏色散人앞으로
2021-12-13 15:03:103691검색

배경상황

운영 및 유지보수 포스트가 없고, 서버에서 파고다 패널을 일률적으로 사용하고 있습니다

처리 과정

서버(파고다 패널 배경)로 가서 오류를 확인할 준비를 하세요 로그인 후 계좌번호와 비밀번호를 입력하고 엔터를 누르면 로그인에 성공했는데 로그인 페이지로 리다이렉션이 되었는데(저는 프로덕션 서버를 볼 때만 사용하는 브라우저를 가지고 있습니다) 같은 현상이 발생했습니다. .ssh가 서버에 성공적으로 로그인했습니다. df -h 얼핏 보면 시스템 디스크가 100%(시스템 디스크가 20G에 불과함)인데 문제가 발견되었습니다

    먼저 휴지통을 비우겠습니다. /www/Recycle_bin/ 디렉토리에는 아무것도 없습니다
  • du -h --max-length=1를 실행하세요 > 루트 디렉터리에서 어떤 폴더가 더 많은 공간을 차지하는지 확인하기 위한 명령, /www/wwwlogs/ 디렉터리 다운로드 아래의 nginx 로그는 약 13G
  • df -h 一看,好家伙,系统盘 100%(系统盘只有 20G),问题找到了

  • 准备把回收站先清空一下,/www/Recycle_bin/ 目录下啥都没有

  • 在根目录下执行 du -h --max-depth=1 命令,看一下哪个文件夹占用比较多,/www/wwwlogs/ 目录下的 nginx 的日志占了有 13G 左右

  • 找了几个超过 1G 的日志文件,rm -rf xxx.log 删除,登录面板后台还是跟之前一样的情况。df -h 发现系统盘还是 100% 占用,文件被删了,空间没回来

  • 原因是 linux 删除文件时,只是删除了系统对于文件的一个指针,如果还有进程在使用该文件,那么文件就会一直存在。可以使用 lsof | grep delete 查找对应的进程然后 kill,也可以直接重启对应的服务。

  • 执行 /etc/init.d/nginx reload 命令重载 nginx 服务后发现剩余空间正常了,测试上传功能正常了。

  • 后续还做了两件事,一是清理了一部分请求日志,二是建了一个日志定时清理的任务

更好的删除方式

删除大文件更好的方式应该是 echo '' > file.ext1G를 초과하는 여러 로그 파일을 발견했으며 rm -rf xxx.log로 삭제했습니다. 로그인 패널 배경은 여전히 ​​이전과 동일합니다. df -h 시스템 디스크가 여전히 100% 점유되어 있고 파일이 삭제되었으며 공간이 복구되지 않은 것을 확인했습니다

이유는 Linux에서 파일을 삭제할 때 파일만 삭제되기 때문입니다. 파일에 대한 시스템 포인터. 프로세스가 파일을 사용하는 동안 파일은 항상 존재합니다. lsof | grep delete를 사용하여 해당 프로세스를 찾은 다음 kill하거나 해당 서비스를 직접 다시 시작할 수 있습니다.

/etc/init.d/nginx reload 명령을 실행하여 nginx 서비스를 다시 로드한 후 남은 공간이 정상인지 확인하고 테스트 업로드 기능도 정상인지 확인합니다. 🎜🎜🎜🎜나중에 두 가지 일을 했습니다. 하나는 요청 로그의 일부를 정리하는 것이고, 다른 하나는 정기적인 로그 정리 작업을 만드는 것이었습니다🎜🎜🎜🎜🎜삭제하는 더 좋은 방법 🎜🎜대규모 삭제 files more 좋은 방법은 echo '' > file.ext를 사용하여 직접 덮어쓰는 것입니다. ㅋㅋㅋ                         

위 내용은 이미지를 업로드할 수 없는 특정 PHP 백그라운드 시스템의 처리 과정을 기록합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제