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

Cron 如何在不同的Web服务器上同步目录?克朗的工作?,cron,cdn,Cron,Cdn,我计划实现一个CDN,需要将我的主域上的目录与CDN上的目录同步。我想也许cron作业可以做到这一点,但我不知道怎么做。虽然不是保持文件夹同步的唯一方法,但我认为rsync可能是最基本的方法。类型 crontab -e 这将为当前用户打开cron表编辑器。按“a”切换到文本附加模式,然后键入类似 0 4 */3 * * /home/me/run-my-rsync.sh >> /home/me/mysync.log 然后按ESC:x关闭(vi是一个值得学习的伟大编辑器)。这将

我计划实现一个CDN,需要将我的主域上的目录与CDN上的目录同步。我想也许cron作业可以做到这一点,但我不知道怎么做。

虽然不是保持文件夹同步的唯一方法,但我认为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
这将递归地将所有新的或更改的文件从remote.machine.com上的/home/me/cdn目录传输到本地计算机上的/home/me/cdn目录。仅传输更改的文件。bash文件必须是可执行文件才能在cron上运行(
chmod+x/home/me/run my rsync.sh

当然,只有当ssh守护进程(sshd)在远程机器上运行并且您拥有对它的访问权限时,这才能起作用。例如,为了使rsync自动工作,您需要使用SSH密钥设置正确的身份验证


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

我强烈建议使用CDN服务,而不是尝试实现itI。我想使用CDN服务,但为了保持JS和CSS文件的更新,我必须手动将它们复制到CDN目录中。这就是为什么我在寻找一个自动化的解决方案。明白了,这是有意义的