業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

Debian13.5 : システムのバックアップとレストア

1. システムのバックアップ

1.1 /var/www/html 配下のバックアップ

① /opt/script配下にbackup_all.shスクリプト作成

# vi /opt/script/backup_all.sh

backup_all.shスクリプト内容
10日間のデータ保存

#!/bin/bash

#===========================================================
# : 環境初期設定
#===========================================================

#日付処理関連
TODAY=`/bin/date +%Y%m%d`
DAY_AGO=`/bin/date --date '10day ago' +%Y%m%d`

#バックアップ元関連
HTML_DIR="/var/www/html"

#出力ファイル関連
BACKUP_DIR="/var/www/backup/www_bak" #バックアップファイル出力先
RUN_FLAG="/var/www/backup/www_bak/www_flag"

#===========================================================
# : バックアップ処理
#===========================================================

/bin/mkdir -p ${BACKUP_DIR}
/bin/touch ${RUN_FLAG}

/bin/tar vfcz ${BACKUP_DIR}/www_back_${TODAY}.tar.gz ${HTML_DIR}

/bin/chmod 644 ${BACKUP_DIR}/www_back_${TODAY}.tar.gz

if [ -f ${BACKUP_DIR}/www_back_${DAY_AGO}.tar.gz ];
then
/bin/rm -f ${BACKUP_DIR}/www_back_${DAY_AGO}.tar.gz
fi

/bin/rm -f ${RUN_FLAG}

➁スクリプトに実行権限付与

# chmod 755 /opt/script/backup_all.sh

➂バックアップファイルを格納するディレクトリを作成

# mkdir -p /var/www/backup/www_bak
# chmod 755 /var/www/backup/www_bak

④cron に設定を追加し、定期的にバックアップする

# crontab -e
0 6 * * * /opt/script/backup_all.sh > /dev/null 2>&1

1.2 MariaDBのデータベースバックアップ

①/opt/script配下にdb_backup.shスクリプト作成

# vi /opt/script/db_backup.sh

db_backup.shスクリプト内容

#!/bin/bash

export LANG=ja_JP.eucJP
export PATH="$PATH":/usr/bin
export MYSQL_HOME=/etc/mysql
export MYLIB=/usr/lib/mysql
export MANPATH=":wq/usr/share/man"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"MYLIB"

#MariaDB接続設定
MYUSER="root" #MariaDB接続ユーザー名
MYPASS="********" #MariaDB接続パスワード

#日付処理関連
TIME_STRING=`/bin/date '+%Y%m%d'`
DAY_AGO=`/bin/date --date '10day ago' +%Y%m%d`

#出力ファイル関連
DB_BAK_DIR="/var/www/backup/db_bak" #バックアップファイル出力先
RUN_FLAG="${DB_BAK_DIR}/db_my_flag"

MYSQL_BACKUP_FILE=${DB_BAK_DIR}/mariadb_backup_"${TIME_STRING}".dump

/bin/mkdir -p ${DB_BAK_DIR}
/bin/touch ${RUN_FLAG}

mysqldump -u${MYUSER} -p${MYPASS} --all-databases --events > ${MYSQL_BACKUP_FILE}
/bin/gzip ${MYSQL_BACKUP_FILE}

if [ -f ${DB_BAK_DIR}/${MT_DB}"${DAY_AGO}".dump.gz ];
then
/bin/rm -f ${DB_BAK_DIR}/${MT_DB}"${DAY_AGO}".dump.gz
fi

if [ -f ${DB_BAK_DIR}/${XOOPS_DB}"${DAY_AGO}".dump.gz ];
then
/bin/rm -f ${DB_BAK_DIR}/${XOOPS_DB}"${DAY_AGO}".dump.gz
fi

if [ -f ${DB_BAK_DIR}/${GEEKLOG_DB}"${DAY_AGO}".dump.gz ];
then
/bin/rm -f ${DB_BAK_DIR}/${GEEKLOG_DB}"${DAY_AGO}".dump.gz
fi

/bin/rm -f ${RUN_FLAG}

➁スクリプトに実行権限付与

# chmod 755 /opt/script/db_backup.sh

➂バックアップファイルを格納するディレクトリを作成

# mkdir -p /var/www/backup/db_bak
# chmod 755 /var/www/backup/db_bak

③cron に設定を追加し、定期的にバックアップする

# crontab -e
0 7 * * * /opt/script/db_backup.sh > /dev/null 2>&1

2. システムの復元

2.1 HTML配下 バックアップファイルの復元

① バックアップに使用するHTML バックアップファイルを、「/(ルート)」ディレクトリへ格納
最新のタイムスタンプの付いたバックアップファイルを選択

# cd /var/www/backup/www_bak
# cp www_back_[time stamp].tar.gz /
# cd /
# tar zxvf www_back_[time stamp].tar.gz

2.2 MariaDB データベースを復元

①DB バックアップファイルを任意のディレクトリに保存し、データを解凍
最新のタイムスタンプの付いたバックアップファイルを選択

# cd /var/www/backup/db_bak
# gzip -d mariadb_backup_[time stamp].dump.gz

②MariaDB をリストア

# mysql -u root -p < mariadb_backup_[time stamp].dump
Enter password: ←MariaDB 用のルートパスワードを入力します(表示されません)