以前使用していたrsyncを用いた差分バックアップスクリプトを書き換える機会があったのでついでに公開しておきます。
#!/bin/bash
#
# バックアップスクリプト(リモートサーバ)
#
#################### 各種環境設定 #######################
# rsyncコマンドのパス
RSYNC_BIN='/usr/bin/rsync'
# sshコマンドのパス
OPSSH_BIN='/usr/bin/ssh'
# バックアップ先のサーバのアドレス
HOST_NAME='example.net'
# バックアップ先のサーバのパス
HOST_PATH='/backup-example.net'
# rsyncコマンドのオプション
RSYNC_OPTION='-avz --delete -e'
# sshコマンドのオプション
OPSSH_OPTION='-i'
# ssh接続で使用する秘密鍵のパス
OPSSH_KEY='/root/.ssh/id_rsa'
# バックアップするディレクトリ
BACK_UP_PATHS='/'
################# バックアップ設定 ######################
# バックアップから除外するディレクトリ一覧
EXCLUDE_PATHS=(\
'/lib/'\
'/lib64/'\
'/dev/'\
'/proc/'\
'/sys/'\
'/misc/'\
'/mnt/'\
'/srv/'\
'/opt/'\
'/media/'\
'/selinux/'\
'/var/log/'\
'/var/lib/'\
'/var/run/'\
'/var/cache/'\
)
#########################################################
# バックアップ除外オプションの作成
for PATH in ${EXCLUDE_PATHS[@]}
do
EXCLUDE=${EXCLUDE}' --exclude '${PATH}
done
# 実行
${RSYNC_BIN} ${RSYNC_OPTION} \
"${OPSSH_BIN} ${OPSSH_OPTION} ${OPSSH_KEY}" \
${EXCLUDE} ${BACK_UP_PATHS} ${HOST_NAME}:${HOST_PATH}${BACK_UP_PATHS}
0 Comments.