2012-09-06 111 views
1

我想每X小時執行一次例行任務的cronjob。 cronjob基本上執行一個shell腳本,該腳本又使用WGET命令從遠程服務器下載文件。然而,在我運行這個shell腳本之前,我想讓cronjob執行一個php腳本,它將檢查更新是否可用(在浪費BW並且一遍又一遍下載同​​一文件沒有意義),如果是,它應該傳遞shell腳本的更新URL,然後使用WGET命令。在shell腳本中集成php的cronjob?

cronjobs從主機管理員面板設置。沒有其他辦法。作爲一個共享的託管服務,我不允許訪問PHP上的其他功能,這可能也是我的任務。

這可能嗎?我是Linux不識字。我已經在Fedora上安裝了幾個RPM,但這就是它。請多多包涵。謝謝!

回答

1

只需將--timestamping傳遞給您的wget命令。

另外,如果你更熟悉PHP的方式,你可以檢查this question一個可用的方法。

使用curl HEAD請求獲取文件的標題並解析出Last-Modified:標題。

要使用PHP腳本作爲一個普通的命令行可執行以此爲出發點:

#!/bin/env php 
<?php 
echo "Hello World\n"; 

保存該文件不帶.php,有的地方把它塞到你的服務器將不會爲它。

接下來,設置可執行位,這樣就可以執行像一個普通的節目 (在下面的命令裝置u+x授予[U] SER E [X] ecute權限helloworld該腳本,chmod是命令,該命令UNIX變體使用設置文件權限)

省略以下順序$,因爲它代表了命令提示符

$ chmod u+x helloworld

現在

您可以通過調用它的BAS執行你的命令行腳本^ h提示:

$ ls 
helloworld 
$ ./helloworld 
Hello World 
$ 

從這裏你可以得到可執行腳本的完整路徑:

$ readlink -f helloworld 
/home/SPI/helloworld 

現在你可以安裝使用的路徑,你的可執行腳本中的cronjob。

+0

我顯然是不合理的。您將我鏈接到的文檔非常有用。我顯然可以使用它來循環訪問鏈接文件並下載它們中的每一個: wget -i文件 會是這樣的工作嗎? wget --timestamping -i file_name? – captainspi

+1

它應該,如果沒有,我敢肯定wget會認爲它是一個錯誤 –

+0

感謝您的幫助! :) – captainspi