2012-11-01 59 views
1

我有一個cron作業設置,它使用腳本在設定的時間將多個文件從FTP下載到本地服務器。當我手動運行腳本時,它工作得很好,它甚至可以通過cron在10次中的9次中完全正常工作。但是,有時它的設置以獲取文件1失敗,它拋出一個類似的錯誤這樣的:'ftp_get:打開BINARY模式數據連接' - 在批處理中發生在單個文件中

ftp_get(): Opening BINARY mode data connection for Media_4.zip (421623342 bytes). in /home/crons/feeds/get_files.php on line 102 

線102是ftp_get(),我知道有什麼不妥,因爲它工作正常運行時手動/等自動化的嘗試,但完全清晰:

foreach ($download_files as $download_file) 
{ 
    $local_file = "{$path}/files/{$download_file}"; 
    $download = ftp_get($conn_id, $local_file, $download_file, FTP_BINARY); 
    if (!$download) 
    { 
    ftp_dl_log($queue_number, "FTP download has failed for $source_name: $download_file", "warn"); 
    } 
    else 
    { 
    ftp_dl_log($queue_number, "Downloaded file successfully"); 
    } 
} 

我懷疑它的任何與文件大小,權限,或類似的東西,總有在多個文件〜2GB蔓延總下載,有時它似乎只是在其中一個文件失敗,所有其他文件檢索沒有問題,所以我很困惑。所有文件的例子是:

Media_1.zip (600mb, downloads fine) 
Media_2.zip (200mb, downloads fine) 
Media_3.zip (700mb, downloads fine) 
Media_4.zip (400mb, downloads fails) 
Media_5.zip (300mb, downloads fine) 
Media_6.zip (250mb, downloads fine) 
Media_summary.csv (2mb, downloads fine) 

大小限制不是一個問題,也不是一個超時發生的問題。

我作爲一個例子文件上傳到FTP @

Oct 31 17:27 

和ftp_get()的文件發生@

Nov 01 03:14 

所以它不可能是該文件在請求時不完整。並考慮到我可以ftp_get()相同的文件沒有錯誤後,它不是腐敗。

有誰知道任何可能導致此問題的其他事情嗎?服務器能否同時執行其他提取操作會導致問題?

任何建議或見解將受到歡迎。

回答

1

我想你可能正在看服務器問題。如果您同時運行這樣的提要,則可能是加載問題。

我會嘗試監視當時的服務器負載(使用top或htop),並可能重新分配一些其他進程,使這個多一點喘息的空間。

+0

我已經仔細研究了這一點,這是我的基本感受。 crons組織糟糕,所以我會試試這個,並且讓它知道它是否有用,謝謝。 – MLeFevre

相關問題