매우 간단한 질문이라는 것은 알지만, 저는 이제 막 2개의 4TB HDD가 장착된 대규모 서버로 작업을 시작했으며 이에 대해 더 알고 싶습니다.
cron으로 실행되는 PHP 스크립트가 있습니다. 스크립트는 FTP 서버에서 파일을 다운로드하고 해당 파일을 내 서버의 특정 폴더에 저장하는 쉘 명령(aria2c)을 호출합니다. 이것은 몇 달 동안 잘 작동했습니다. 사용자가 서버의 파일을 다운로드할 수 있어야 합니다.
하지만 이제는 더 많은 파일 공간을 확보하기 위해 두 번째 하드 드라이브를 설치했습니다. 보시다시피 마운트에 성공했습니다.
이틀 전에 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"라는 디렉터리에 파일을 다운로드하고 있습니다. 나는 그것이 당신의 메인 하드 드라이브 "/"에 있다고 가정합니다. "df" 명령을 실행하여 두 번째 HDD가 마운트된 위치를 확인하고 출력 경로를 다음과 같이 변경합니다.
/media/HDD2/files/$remfile
답변2
오류 목록을 살펴본 후 문제에 대한 해결책을 찾았습니다.
- 두 번째 하드 드라이브의 경로는 다음과 같습니다. /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 파일을 다운로드할 수 있습니다.
같은 문제에 직면한 사람에게 도움이 될 수 있기를 바랍니다.