シェルスクリプト

説明

ローカルで作成したスナップショットをリモートに送信するシェルスクリプトです。
リモート上でデータが存在すると、データを受け取ることができないので一旦SSHでログインして削除しています。
データを先に削除する仕組みですので、ご自身の環境でご利用される場合はくれぐれもご注意ください。

内容

#!/bin/bash

#########################################################################
# [事前準備]
# 1.バックアップサーバー上でSSHUSRのauthorised_keyに公開鍵を登録する
# 2.バックアップサーバー上でvisudoを実行して、ユーザーを追加、/sbin/zfsを追加する
# 3.ローカルとバックアップサーバー上のZFSディレクトリを確認しておく
#########################################################################

export LANG=c

### Common vars
#ZFSバックアップサーバー
ZFSSVR=192.168.◯.◯

#ZFSバックアップサーバー上のファイルシステム
ZFSSVRD=zfs1/$1

#SSH,SUDO実行ユーザー
SSHUSR=zfsuser

#ローカルのバックアップ対象のZFSファイルシステム
ZFSD01=zfs1/$1

#スナップショット名
SNPNAME=snapshot01

#バックアップの際の送信先ファイルシステム振り分け用
YOUBI01=`date +\%a`
#YOUBI01=Sun


### Backup Scripts

ping -c 3 ${ZFSSVR}

# バックアップサーバー上のバックアップデータの削除
/usr/bin/ssh -t ${SSHUSR}@${ZFSSVR} "sudo /sbin/zfs destroy ${ZFSSVRD}/${YOUBI01}@${SNPNAME}"

# ローカル上でスナップショットの作成
/sbin/zfs snapshot ${ZFSD01}@${SNPNAME}

# ローカルのスナップショットをバックアップサーバーへ送信
/sbin/zfs send ${ZFSD01}@${SNPNAME} | /usr/bin/ssh ${SSHUSR}@${ZFSSVR} sudo /sbin/zfs recv -F ${ZFSSVRD}/${YOUBI01}

# ローカルのスナップショットの削除
/sbin/zfs destroy ${ZFSD01}@${SNPNAME}

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 01:40:11