2013-01-13 51 views
0

我計劃實施一個CDN,並需要將我的主域上的目錄與CDN上的目錄同步。我認爲也許一個cron工作會做的伎倆,但我不知道如何。如何在不同的web服務器上同步目錄?克龍 - 工作?

+1

我強烈建議使用CDN服務而不是試圖實現它 –

+0

我想使用CDN服務,但要保持JS和CSS文件更新,我必須手動將它們複製到CDN目錄中。這就是爲什麼我正在尋找一個自動化的解決方案。 – Imi78

+0

明白了,那是有道理的 –

回答

1

雖然不是保持文件夾同步的唯一方法,但我認爲rsync可能是最基本的方法。類型

crontab -e 

這將打開當前用戶的cron表編輯器。按「a」切換到文本附加模式,並輸入類似於

0 4 */3 * * /home/me/run-my-rsync.sh >> /home/me/mysync.log 

然後按ESC:x關閉(vi是一個偉大的編輯器值得學習)。這將在每三天的凌晨4:00運行包含rsync命令的bash腳本。

/home/me/run-my-rsync.sh必須是包含rsync命令的現有文件。在這裏,也有可能有一個非常複雜的腳本,最基本的很可能是

#!/bin/bash 
rsync -avz remote.machine.com:cdn /home/me/cdn 

這將遞歸地從目錄/ home/ME/CDN傳輸的所有remote.machine新的或修改過的文件.com放入本地計算機上的/ home/me/cdn目錄中。只有更改的文件將被傳輸。你的bash文件必須是可執行的才能在cron上運行(chmod +x /home/me/run-my-rsync.sh)。

當然,這隻有在遠程機器上運行ssh守護進程(sshd)並且您有訪問權限的情況下才能起作用。爲了使rsync自動工作,您需要使用例如here所述的SSH密鑰設置正確的身份驗證。

我建議首先建立在兩臺機器上賬戶,安裝的sshd,檢查瑣碎登錄作品,然後手動嘗試,如果你的rsync命令工作(密碼將被要求),然後配置爲使用SSH密鑰,而不是密碼最後嘗試創建cron作業。

相關問題