Ich wusste, dass das eine recht einfache Frage ist, aber ich benutze zum ersten Mal einen ziemlich großen Server mit zwei 4-TB-Festplatten und möchte viel darüber lernen.
Ich habe ein PHP-Skript, das als Cron ausgeführt wird. Das Skript ruft einen Shell-Befehl (aria2c) auf, der eine Datei von einem FTP-Server herunterlädt und die Datei in einem bestimmten Ordner auf meinem Server ablegt. Das funktioniert seit Monaten einwandfrei. Die Dateien auf dem Server müssen für Benutzer herunterladbar sein.
Nun haben wir aber noch eine zweite Festplatte eingebaut, um mehr Platz für Dateien zu haben. Wie ich sehe, war der Einbau erfolgreich.
Vor zwei Tagen wurde das Kontingent der HDD1 erreicht und das Skript hat Fehler ausgegeben. Bis zu diesem Zeitpunkt war ich davon ausgegangen, dass der Upload automatisch auf die HDD2 umschaltet. Das war aber falsch! Hier stellt sich meine Frage.Wie kann ich Dateien auf HDD2 hochladen und sie für Benutzer herunterladbar machen?
Mein Upload-Befehl für aria2c lautet:
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
Antwort1
Wie ich in Ihrem Befehl sehen kann, laden Sie die Datei in ein Verzeichnis mit dem Namen „files“ herunter. Ich nehme an, dass sie sich in Ihrer Hauptfestplatte „/“ befindet. Führen Sie einen „df“-Befehl aus, um zu sehen, wo Ihre zweite Festplatte eingebunden ist, und ändern Sie den Ausgabepfad in etwas wie:
/media/HDD2/files/$remfile
Antwort2
Nachdem ich eine Liste von Fehlern durchgegangen war, fand ich eine Lösung für mein Problem:
- der Pfad zu meiner zweiten Festplatte ist. /mnt/Festplatte1(danke an NIZ für den Hinweis)
- füge dieses Verzeichnis hinzu inopen_basedirimphp.iniwie:[andere Verzeichnisse]:/mnt/disk1
- loggen Sie sich mit der Shell ein und gehen Sie zumntdir. Mache das Verzeichnis disk1 beschreibbar mit z.B.sudo chmod 777 disk1
- schreibe eine test.txt mit
fopen("/mnt/disk1/text.txt");
- Die Datei test.txt kann nun mit einem Download-Skript heruntergeladen werden, das den absoluten Pfad "/mnt/disk1/test.txt" enthält.
Ich hoffe, dass ich jedem helfen konnte, der vor dem gleichen Problem steht.