我打算实施CDN,需要将主域上的目录与CDN上的目录同步。我认为也许一个cron-job可以做到这一点,但我不知道如何。
答案 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作业。