犬ターネット

rsync を使ってローカルファイルをリモートサーバに同期する

2018年08月28日 #rsync

メモ。

環境

やること

ローカルの /data/hoge/ をリモートサーバの /data/hoge/ に同期する。


リモート側 (192.168.0.11) 設定

rsync をインストールする。

# yum install rsync

/etc/hosts.allow に 以下を記述して 192.168.0.10 からのアクセスを許可する。

sshd:192.168.0.10

ローカル側 (192.168.0.10) 設定

rsync をインストールする。

# yum install rsync

ついでに、/etc/hosts.allow に 以下を記述して 192.168.0.11 からのアクセスを許可しておく。

sshd:192.168.0.11

パスワード認証無しで rsync を可能にするため、SSH鍵を作成してリモートにコピーする。

# cd
# ssh-keygen -t dsa
(全て未入力で作成)
# ssh-copy-id -i .ssh/id_dsa.pub root@192.168.0.11

まずは -n オプションをつけてテスト実行。エラーがでなければOK。

# rsync -avn --partial --del /data/hoge/ root@192.168.0.11:/data/hoge/

手動実行は面倒なので cron に登録して毎週日曜の夜中2時に実行させる。まずはスクリプトを作成。

# mkdir -p /root/sh/
# vim /root/sh/rsync.sh
rsync -av --partial --del /data/hoge/ root@192.168.0.11:/data/hoge/
# chmod 777 rsync.sh

最後にcronに登録。

# crontab -u root -e
0 2 * * 0 /bin/sh /root/sh/rsync.sh