我在hostname.com/files
有一個服務器。每當文件上傳,我想下載它。保持從遠程服務器更新文件
我正在考慮創建一個不斷檢查files
目錄的腳本。它會檢查服務器上文件的時間戳,並根據它們下載它們。
是否有可能使用bash腳本檢查文件時間戳?有沒有更好的方法來做到這一點?
我可以每1小時下載一次服務器中的所有文件。因此使用cron作業會更好嗎?
我在hostname.com/files
有一個服務器。每當文件上傳,我想下載它。保持從遠程服務器更新文件
我正在考慮創建一個不斷檢查files
目錄的腳本。它會檢查服務器上文件的時間戳,並根據它們下載它們。
是否有可能使用bash腳本檢查文件時間戳?有沒有更好的方法來做到這一點?
我可以每1小時下載一次服務器中的所有文件。因此使用cron作業會更好嗎?
如果您有定期更新文件的時間間隔,是的,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
確保它不會進入父目錄,從而有效地竊取整個服務器的內容。
像往常一樣,更多細節將在rsync
或wget
的手冊頁中。
使用'rsync',它只會複製新文件或已更改的文件。 – Barmar