[[シェルスクリプト]]

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

*内容 [#wb7d2dbc]
 #!/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