매우 간단한 질문이라는 것을 알고 있었지만, 저는 2개의 4TB HDD가 있는 꽤 큰 서버를 처음 사용하고 이에 대해 많은 것을 배우고 싶습니다.
cron으로 실행되는 PHP 스크립트가 있습니다. 스크립트는 FTP 서버에서 파일을 다운로드하고 해당 파일을 내 서버의 특정 폴더에 저장하는 쉘 명령(aria2c)을 호출합니다. 이것은 몇 달 이후로 잘 작동합니다. 서버의 파일은 사용자가 다운로드할 수 있어야 합니다.
하지만 이제 파일을 위한 더 많은 공간을 확보하기 위해 두 번째 HDD를 마운트했습니다. 보시다시피 마운트가 성공적으로 이루어졌습니다.
이틀 전에 HDD1 할당량에 도달하여 스크립트에 오류가 발생했습니다. 지금까지는 업로드가 자동으로 hdd2로 전환된다고 믿었습니다. 하지만 이건 틀렸어요! 여기서 내 질문이 생깁니다.HDD2에 파일을 업로드하고 사용자가 다운로드할 수 있도록 하려면 어떻게 해야 합니까?
aria2c에 대한 내 업로드 명령은 다음과 같습니다.
aria2c --ftp-user $username --ftp-passwd $password -c -p -t 100 -s 2 --max-connection-per-server 1 --max-download-limit $speedLimit --allow-overwrite=true --file-allocation none --summary-interval 0 ftp://$server/$remfile -o files/$remfile
답변1
귀하의 명령에서 볼 수 있듯이 "files"라는 디렉터리에 파일을 다운로드합니다. 나는 그것이 당신의 메인 HDD "/"에 있다고 가정합니다. "df" 명령을 실행하여 두 번째 HDD가 마운트된 위치를 확인하고 출력 경로를 다음과 같이 변경합니다.
/media/HDD2/files/$remfile
답변2
오류 목록을 살펴본 후 문제에 대한 해결책을 찾았습니다.
- 내 두 번째 HDD의 경로는 다음과 같습니다. /mnt/디스크1(힌트를 주신 NIZ에게 감사드립니다)
- 이 디렉토리를open_basedir에서php.ini좋다:[다른 디렉토리]:/mnt/disk1
- 쉘로 로그인하고 다음으로 이동하십시오.백만디렉토리. 예를 들어 dir disk1을 쓰기 가능하게 만듭니다.sudo chmod 777 디스크1
- test.txt를 작성하세요.
fopen("/mnt/disk1/text.txt");
- 이제 절대 경로 "/mnt/disk1/test.txt"를 포함하는 다운로드 스크립트를 사용하여 test.txt 파일을 다운로드할 수 있습니다.
같은 문제에 직면한 모든 사람에게 도움을 줄 수 있기를 바랍니다.