如何在不同的Web服务器上同步目录?克龙 - 工作?

时间:2013-01-13 19:46:48

标签: cron cdn

我打算实施CDN,需要将主域上的目录与CDN上的目录同步。我认为也许一个cron-job可以做到这一点,但我不知道如何。

1 个答案:

答案 0 :(得分:1)

虽然不是保持文件夹同步的唯一方法,但我认为,rsync可能是最基本的方法。型

 crontab -e

这将为当前用户打开cron表编辑器。按“a”切换到文本追加模式并输入类似

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

然后按ESC:x关闭(vi是一个值得学习的伟大编辑器)。这将在每隔三天凌晨4点运行包含rsync命令的bash脚本。

/home/me/run-my-rsync.sh必须是包含rsync命令的现有文件。在这里,也可以有一个非常复杂的脚本,最基本的可能是

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

这将递归地将所有新的或更改的文件从remote.machine.com上的目录/ home / me / cdn传输到本地计算机上的/ home / me / cdn目录中。仅传输已更改的文件。您的bash文件必须是可执行文件才能在cron(chmod +x /home/me/run-my-rsync.sh)上运行。

当然,只有在远程计算机上运行ssh守护程序(sshd)并且您具有访问权限时,才能执行此操作。为了使rsync自动运行,您需要使用SSH密钥设置正确的身份验证,例如here所述。

我建议先在两台机器上创建帐户,安装sshd,检查是否有简单的登录工作,然后手动尝试rsync命令是否有效(将询问密码),然后配置为使用ssh密钥而不是密码和最后尝试创建cron作业。