rsync3で高速差分フルバックアップ

rsync --link-dest --rsync-path など


結局こうなった(現段階でのメモ)

CMD=/usr/local/bin/rsync
STRAGE=/var/backup
OLDEST=`date --date '7 days ago' +%Y%m%d`
LATEST=`date --date '1 days ago' +%Y%m%d`

for HOST in `ls $STRAGE`;
do
  if [ -f $STRAGE/$HOST ] ; then
    continue
  fi

  HOSTNAME=`cat $STRAGE/$HOST/hostname.txt`
  echo "backup start : $HOSTNAME"

  if [ -d $STRAGE/$HOST/$OLDEST ] ; then
    rm -fr $STRAGE/$HOST/$OLDEST
  fi

  if [ -d $STRAGE/$HOST/current ] ; then
    mv $STRAGE/$HOST/current $STRAGE/$HOST/$LATEST
  fi

  $CMD -az --delete \
  --link-dest="../$LATEST/" \
  --rsync-path="sudo $CMD" \
  --exclude-from=$STRAGE/$HOST/excludes.txt \
  backup@$HOST:/ $STRAGE/$HOST/current/

done;

ローカルIPと同じ名称でディレクトリを作成すれば、バックアップ対象としてエントリされる仕組み。

以降は初期設定と、ターゲット毎の設定。

#-------------------------
# 初期設定
#-------------------------
scp backup.sh root@192.168.1.177:
ssh root@192.168.1.177
ssh-keygen -t rsa
useradd -G wheel backup
passwd backup

# rsync3 のインストール
cd /usr/local/src/
wget http://rsync.samba.org/ftp/rsync/rsync-3.0.7.tar.gz
tar xzfv rsync-3.0.7.tar.gz 
cd rsync-3.0.7
./configure
make
make install

#-------------------------
# ターゲット毎の設定
#-------------------------
ssh work@192.168.1.172
su -

# rsync3 のインストール
cd /usr/local/src/
wget http://rsync.samba.org/ftp/rsync/rsync-3.0.7.tar.gz
tar xzfv rsync-3.0.7.tar.gz 
cd rsync-3.0.7
./configure
make
make install

# バックアップユーザの追加と sudo の設定
useradd backup
visudo
backup ALL= NOPASSWD:/usr/local/bin/rsync

# 必要に応じて公開鍵認証を有効化する
vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# バックアップサーバから公開鍵認証でログインできるようにする。
su - backup
vi ~backup/.ssh/authorized_keys