2012-01-16 172 views
1

我們的網站目前每晚備份到一個單獨的服務器,我們已經很好,但是當我們在第二天下載文件時需要很長時間來下載文件(通常大約36,000多張圖片)。在第二天下載這些內容需要相當長的一段時間,並影響到使用我們網絡的所有其他人的速度,所以理想情況下,我們會在半夜嘗試這樣做 - 除非這裏沒有人這樣做。使用PHP上傳一個文件夾通過FTP使用PHP

備份所在的服務器正在運行Cpanel,這似乎使得將PHP文件作爲Cron作業運行相當簡單。

我假設以下,隨時告訴我,我錯了。

1)備份所在的服務器運行Cpanel。看起來,設置PHP腳本在半夜作爲Cron作業運行應該不會太困難。

2)我們可以部署一個PHP腳本,利用FTP功能連接到另一臺服務器,並使用此cron作業啓動這些文件的備份。

3)我們正在Windows平臺上運行Xampp。它有Filezilla作爲它的一部分,所以我假設它應該能夠接受傳入的FTP連接。

4)總體而言 - 我們可以在每天晚上運行的備份服務器上部署腳本,並將文件發送回運行Xampp的本地計算機。

這就是我所猜測的。儘管如此,我仍然陷入了第一個障礙。我試圖創建一個在我們的本地計算機上運行的腳本,並在執行時將指定的文件夾發送到備份服務器,但我似乎能夠找到的是與單個文件相關的腳本。儘管我有一些PHP的使用經驗,但是我還沒有涉及到FTP功能,在這之前我給了我一些問題。我試過其他的例子在這裏堆棧溢出沒有成功:(

我只是尋找可以傳輸上傳文件夾到遠程IP的腳本的最簡單形式。任何幫助將不勝感激。

+2

您也可以考慮設置一項工作,將所有文件放入檔案中,因此您只需一次傳輸一個文件而不是36,000。 – jprofitt 2012-01-16 13:25:38

+0

您確定可以通過網絡連接到本地XAMPP服務器嗎?我的ISP阻止它。 – ThatOtherPerson 2012-01-16 13:30:09

+0

@jprofitt - 這可能是一種方式,但它會成爲一個大文件,如果連接中斷或傳輸失敗,那麼我肯定可以一無所有?這是需要研究的東西。 – 2012-01-16 13:33:06

回答

1

在通過FTP傳輸大量小文件時涉及相當多的開銷,我發現通過本地網絡看到的作業需要5倍的時間,而將文件打包成zip文件和將它們發送到一個大文件中

您可以使用exec()從命令行(或者您喜歡的任何壓縮工具)運行zip。之後,您可以通過ftp pr etty很快(你說你找到了傳輸1個文件的方法)。出於備份目的,將文件壓縮可能會使事情變得更容易處理,但如果您需要將它們解壓縮,則可以在另一臺計算機上設置作業來解壓文件。

+0

我不需要解壓它們,除非我需要它們,所以不需要自動化,因此會很好。我不知道如何使用PHP自動化壓縮遠程文件夾,這個任務最終會比我原來的問題複雜嗎?除了下載文件所花費的時間之外,這對我們來說確實不是問題,並且如果它在晚上當我們的互聯網連接未被使用時運行,那對我們來說就沒有問題。 – 2012-01-16 13:40:17

+0

如果你有任何指向exec()zip的初學者指南的鏈接,我會很感激他們。 – 2012-01-16 13:44:45

+0

exec是一個php命令,可以讓你運行一個命令,zip是一個標準的linux命令。我爲兩者添加了鏈接。 – MrGlass 2012-01-16 13:49:22