質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.23%

Mondo Rescueバックアップシェル実行時のWebDAVのマウント・アンマウント設定方法について

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 384

darumausagi

score 18

サイト運営を目標に現在勉強中です。
浅学ゆえの未熟な質問、ご容赦ください。
ご助力いただけますと大変助かります。 

前提・実現したいこと

さくらVPSのイメージバックアップを日次で取得したい

  • cronでシェルスクリプトを自動実行
  • スクリプト実行時にマウント→その際にマウント失敗したら後続のバックアップ中止・エラーログ吐き出す→終了後アンマウント
  • 3日分のフルバックアップを残して、古いものは自動で削除
  • スクリプト内にオンラインストレージのユーザ情報・パスワードは直書きしたくない

<利用サービス>
サーバ:さくらのVPS 
オンラインストレージ:TeraCloud

できなかったこと・困っているところ

下記の記事を参考に、バックアップの自動化自体は一応できたのですが、自動マウント状態でスクリプトを実行しています。
https://qiita.com/halpas/items/2f51d3b9954367f1587e

自動マウント状態での実施を採用したのは、スクリプト内にパスワードを直書きしたくなかったのと、そうせずにマウント・アンマウントを自動化する方法が浅学故にわからなかったためです。
しかし、TeraCloudの仕様(自動的にzfsでスナップショットが取得されて利用できるストレージの空きがなくなる)や、自動マウントがうまくいかなくなってしまった(理由不明)時に、
バックアップやisoファイルのmvが失敗することがままあり、スクリプトを改善したいと強く思っています。
失敗だけならまだよいのですが、その結果、/tmpに不要なデータがたまってしまってディスクを圧迫してしまったりして、そのたびに手動で対応しなければいけなくなるので(頻繁に)、自動化の意味がないな、と感じています。
特に自動マウントについては、設定上はマウントされているのに、実態はmvができない状態となっていたり、lsで確認することすらもできない状態になっていたりすることがあるので、
「スクリプト実行時にマウント→その際にマウント失敗したら後続の作業中止・エラーログ吐き出す→終了後アンマウント」の方がよさそう、と単純に考えたのですが、
パスワード直書きせずに実施する方法が調べてもいまいちわかりませんでした。

お手数ですが、ご教授いただけると助かります。
よろしくお願いいたします。

現在のスクリプトは下記になります。

#!/bin/bash
# フルバックアップスクリプト
export LANG=C

# 各種変数定義
MAIL=<メールアドレス>
HOSTNAME=<ホスト名>

# バックアップ保存先
TSDIR=/var/tmp
ESDIR=/backup

# バックアップファイルの最大サイズ。この値を超えると次のファイルが作成される。
# DVD-Rは4gまたは4200m BD-Rは22g
ISOSIZE=16g

# バックアップファイル保持期間(日)
KEEP=4

#移動失敗したバックアップファイルを外部ストレージに移動
find ${TSDIR} -name \*.iso | xargs -i cp -p {} ${ESDIR}
find ${TSDIR} -name \*.iso | xargs rm

# mondoarchiveコマンドでバックアップを作成し、実行結果からresult=0の文字を検索
# result=0の文字がある場合は、バックアップ正常と判断
# 正常異常ともに処理結果をメールで送信

# -OiはISOモード、-NはNFS除外、-dは保存先ディレクトリ、-Eは除外ディレクトリ、-sはサイズ。
if /usr/sbin/mondoarchive -OiN -d ${TSDIR} -E ${ESDIR} -s ${ISOSIZE} -p `date +%Y%m%d%H%M%S`_${HOSTNAME}_Backup | grep "result=0";
then
echo -e "Full backup succeed"
else
echo -e "Full backup Failed!!!! Type 'less /var/log/mondoarchive.log' to see the output log"| mail -s "[Warning] result of mondoarchive b                                                                                                                                                                                    ackup (${HOSTNAME})" ${MAIL}
fi

# バックアップディレクトリのファイルのタイムスタンプがKEEPで設定した日数以上前のものを自動削除する
#mv /var/tmp/.iso /backup
find ${ESDIR} -mindepth 0 -mtime +${KEEP} -type f | xargs --no-run-if-empty rm


#バックアップファイルを外部ストレージに移動
find ${TSDIR} -name \*.iso | xargs -i cp -p {} ${ESDIR}
find ${TSDIR} -name \*.iso | xargs rm

exit
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • dameo

    2020/01/15 06:36

    BIOSのUUIDをパスフレーズに使ってopensslで暗号化したパスワードを埋め込むのはどうでしょうか?
    https://qiita.com/kazuhidet/items/122c9986ca0edd5284ff

    マウントは↓で出来ると思います。
    echo 復号したパスワード | mount -t davfs https://xxxx.teracloud.jp/dav/ /mnt -o username=ユーザー名

    キャンセル

  • darumausagi

    2020/01/20 23:00

    返信が遅くなってしまい申し訳ありません…。ご回答いただきありがとうございます。
    教えていただいた内容でチャレンジしてみます!

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る