我计划实现一个 CDN,并且需要将我的主域上的目录与 CDN 上的目录同步。我认为也许 cron-job 可以解决问题,但我不知道如何。
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
这将递归地将所有新的或更改的文件从 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 作业。