永久启用 rsync 运行

enable rsync to run permanently

我有两台机器,都是 运行 linux 上的 centos 7。 我已经在它们上都安装了 rsync 包,我可以将一个目录从一台机器同步到另一台机器。

现在我正在手动同步,每次我想同步我都是运行下一行:

rsync -r /home/stuff root@123.0.0.99/home

我想知道是否有一种方法可以将 rsync 配置为自动同步,每隔一段时间或者最好是在主目录中有子目录的新文件时?

感谢您的帮助。 任何帮助将不胜感激。

如果你想每隔一段时间 rsync,你可以使用 cronjobs,它可以配置为 运行 每次特定的命令,如果你想 运行 rsync 当有更新或修改时可以使用lsyncd。检查 this article 关于使用 lsyncd

更新: 由于链接可能会过时,我将添加这个简短的示例(您可以自由修改最适合您的内容):

首先在源机器上创建一个 ssh 密钥,然后在目标机器上的 ~/.ssh/authorized_keys 文件中添加 public 密钥。

在源机器中使用以下内容更新此文件~/.ssh/config

# ~/.ssh/config
...
Host my.remote.server
    identityfile ~/.ssh/id_rsa
    IdentitiesOnly yes
    hostname 123.0.0.99
    user root
    port 22
...

并使用以下配置您的 lsyncd,然后重新启动 lsyncd 的服务

# lsyncd.conf
...
sync {
    default.rsyncssh,
    source="/home/stuff",
    host="my.remote.server",
    targetdir="/home/stuff",
    excludeFrom="/etc/lsyncd/lsyncd.exclude",
    rsync = {
         archive = true,
    }
}
...

您可以设置每小时一次的 cron 作业来执行此操作。 rsync 本身非常有效,因为它只传输更改。 您可以在此处找到有关 cron 的更多信息:cron