rsync + lsyncd でファイル同期

投稿者: | 2024年2月10日

rsyncの設定

ファイル送信元で鍵を作ります。

    $ ssh-keygen -t rsa -N "" -C "rsync_id_rsa" -f ~/.ssh/id_rsa.rsync

公開鍵(.ssh/id_rsa.rsync.pub)をファイル送信先の ~/.ssh/authorized_keys に追記する。

ファイル送信元から作成した鍵を使って送信先にSSHでつながることを確認します。
$ ssh -i ~/.ssh/id_rsa.rsync 172.31.45.71

ファイル転送ができることを確認します。

    $ mkdir share
    $ echo "Apple" > share/test.txt
    $ rsync -av -e "ssh -i ~/.ssh/id_rsa.rsync" ~/share/ centos@172.31.45.71:/home/centos/share/

lsyncd の設定

ファイル転送先にlsyncdを入れます。

    $ sudo yum install epel-release
    $ sudo sed -i -e "s/enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo
    $ sudo yum --enablerepo=epel install lsyncd
    $ sudo mv /etc/lsyncd.conf /etc/lsyncd.conf.org
    $ sudo cp -p /etc/lsyncd.conf.org /etc/lsyncd.conf
    $ sudo vi /etc/lsyncd.conf
    -----
    settings {
      logfile    = "/var/log/lsyncd/lsyncd.log",
      statusFile = "/var/log/lsyncd/lsyncd.status",
    }

    sync{
      default.rsync,
      source = "/home/centos/share/",
      target = "centos@172.31.45.71:/home/centos/share/",
      delete = true,
      delay = 1,
      rsync = {
        rsh = "/usr/bin/ssh -i /home/centos/.ssh/id_rsa.rsync -o UserKnownHostsFile=/home/centos/.ssh/known_hosts"
      }
    }
    -----
    $ sudo systemctl enable lsyncd
    $ sudo systemctl start lsyncd
    $ sudo systemctl status lsyncd

ファイルが同期されることを確認します。

    $ echo "Ball" > share/test2.txt
    $ echo "Cat" > share/test3.txt
    $ rm share/test.txt

ファイル送信先で、test2.txt, test3.txt が追加され、test.txtが削除されているはずです。

参考情報


https://qiita.com/trisland/items/09ad116b6a477d979f53

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です