rsync3で高速差分フルバックアップ
結局こうなった(現段階でのメモ)
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