2013-06-25 32 views
0

我在hostname.com/files有一個服務器。每當文件上傳,我想下載它。保持從遠程服務器更新文件

我正在考慮創建一個不斷檢查files目錄的腳本。它會檢查服務器上文件的時間戳,並根據它們下載它們。

是否有可能使用bash腳本檢查文件時間戳?有沒有更好的方法來做到這一點?

我可以每1小時下載一次服務器中的所有文件。因此使用cron作業會更好嗎?

+3

使用'rsync',它只會複製新文件或已更改的文件。 – Barmar

回答

0

如果您有定期更新文件的時間間隔,是的,cron作業可能是您最好的選擇。只需編寫一個腳本來執行檢查並按小時間隔運行一次。

由於@Barmar評論上面,rsync可能是另一種選擇。把這樣的事情在crontab,你應該設置:

# min hour  day month day-of-week user command 
17 * * * * user rsync -av http://hostname.com/ >> rsync.log 

將在該位置的服務器抓取文件和細節追加到rsync.log每個小時的第17分鐘。但是,現在,我似乎無法獲得rsync從Web服務器獲取文件。

使用wget另一種選擇是:

wget -Nrb -np -o wget.log http://hostname.com/ 

其中-N重新下載文件只比本地版本的時間戳更新,-b發送 過程爲背景,-r遞歸進入目錄和-o指定日誌文件。這可以從任意的Web服務器上運行。 -np確保它不會進入父目錄,從而有效地竊取整個服務器的內容。

像往常一樣,更多細節將在rsyncwget的手冊頁中。