rsyncでバックアップ

rsyncでファイルをコピーしようとして詰まったのでメモ。いろいろ書きたいことはあるんだけど時間がないので、とりあえず詰まったところだけ箇条書きで。

前提

  • rsyncはインストール済み
  • sshもインストール済み

Ubuntuにインストール済みの rsyncはデフォルトで sshを使うようになっていました(--with-rsh=sshコンパイルされている?)。sshは標準ポート(22)は使わず、XXXXという4桁ポートを使うように設定してあります。

rsyncでコピー

$ rsync -avz -e ssh /home/test/ 192.168.1.250:/home/backup/
ssh: connect to host 192.168.1.250 port 22: Connection refused

「/home/test」を「192.168.1.250:/home/backup/」へコピーしたいわけですが、ポート22番が開いてないと怒られるわけです。当たり前ですね、開けてないのですから。

解決

$ export RSYNC_RSH='ssh -p xxxx'
$ rsync -avz /home/test/ 192.168.1.250:/home/backup/

「-e ssh」部分を環境変数RSYNC_RSHにセットしてしまえばいいということです。これで実行して「Operation not permitted」が出るときは、コピー先(192.168.1.250:/home/backup/)のオナー、パーミッションを確認しましょう。