2013-01-23 85 views
2

我要求的是如何在PHP服務器上設置複製操作,以每隔x分鐘從遠程服務器複製映像文件。將映像文件從一臺服務器保存到另一臺服務器,每x分鐘重複一次

基本上我想這樣做:

$copy = copy('http://domain.com/image.jpg', '.images/destimg.jpg'); 

有了另外,它每5分鐘搞定! 可以在不使用太多內存的情況下完成嗎?如何cron工作?你有什麼建議?

我實現了最簡單的方法是這樣的:

  1. 創建一個PHP文件與下面的代碼

    <?php 
    /* 
    * Copy images from remote server 
    */ 
    
    $file = 'http://www.example.com/images/image.jpg'; 
    $file1 = 'http://www.example.com/images/image1.jpg'; 
    $file2 = 'http://www.example.com/images/image2.jpg'; 
    
    $newfile = '/ABSOLUTE/PATH/WHERE/TO/PUT/FILE/images/image.jpg'; 
    $newfile1 = '/ABSOLUTE/PATH/WHERE/TO/PUT/FILE/images/image1.jpg'; 
    $newfile2 = '/ABSOLUTE/PATH/WHERE/TO/PUT/FILE/images/image2.jpg'; 
    
    if (copy($file, $newfile) && copy($file1, $newfile1) && copy($file2, $newfile2)) { 
        echo "Copy success!"; 
        //return; 
    } else { 
        echo "Copy failed."; 
    } 
    ?> 
    
  2. 測試,看看你是否得到複製成功的消息。

  3. 註釋掉或刪除回顯並取消註釋返回,刪除其他部分代碼。
  4. 用命令來創建cron作業:

    PHP /ABSOLUTE/PATH/TO/YOUR/PHP/FILE/your-file.php

也就是說它:-)

回答

2

如果你有ssh訪問權限並且可以設置一個cron作業,那麼這很簡單。您只需設置一個使用curlwget的cron作業下載圖像並將其保存在適當的文件夾中。 PHP不會進入它。

使用curl,你的crontab看起來是這樣的:

*/5 * * * * curl http://domain.com/image.jpg > /......./images/destimg.jpg 

這被設置爲每5分鐘運行。只要確保爲圖像目的地設置絕對路徑。

更多關於cron作業:https://en.wikipedia.org/wiki/Cron

+0

通過Webmin的模塊試過幾個變化,增加代下工作。 使用命令: – 2013-01-23 12:24:43

+0

對不起,按下輸入... 這裏是我的嘗試: 'cd/var/www/html/images/curl -O http://www.example.com/image.jpg'和'curl -o http://www.example.com/image.jpg /var/www/html/images/image.jpg'兩個命令似乎是確定的,但沒有得到下載或保存... – 2013-01-23 12:30:32

+0

@ronimarin我的例子中有一個錯誤,現在修復。在URL之後並且在目的地之前需要有一個>。 – Kris

相關問題