以前使用していた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.