Fedora35 : システムのバックアップ & リストア

Web構成ファイル(html配下)バックアップ

①html配下バックアップスクリプトファイルの作成

# cd /var/www/system/
# vi html_backup.sh
html_backup.shの内容

#!/bin/bash
#日付処理関連(10日分保存)
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/html_bak” RUN_FLAG=”/var/www/backup/html_bak/html_flag”

/bin/mkdir -p ${BACKUP_DIR}
/bin/touch ${RUN_FLAG}
/bin/tar vfcz ${BACKUP_DIR}/html_back_${TODAY}.tar.gz ${HTML_DIR}
/bin/chmod 644 ${BACKUP_DIR}/html_back_${TODAY}.tar.gz

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

バックアップ保存ディレクトリー作成と権限付与

# cd /var/www/system/
# mkdir -p /var/www/backup/html_bak
# chmod 777 /var/www/backup/html_bak
# chmod 700 html_backup.sh
②バックアップ処理を実行
# /var/www/system/html_backup.sh
③cron に設定を追加し、定期的にバックアップ
# crontab -e
0 3 * * * /var/www/system/html_backup.sh > /dev/null 2>&1

MySQLデータベースバックアップ

①バックアップスクリプトファイルの作成
# cd /var/www/system
# vi db_my_backup.sh
db_my_backup.shの内容

#!/bin/bash
#MYSQL接続設定
MYUSER=”root”  #MySQL接続ユーザー名
MYPASS=”<rootパスワード>”  #MySQL接続パスワード

#日付処理関連
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}/mysql_backup_”${TIME_STRING}”.dump

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

mysqldump -u${MYUSER} -p${MYPASS} –all-databases > ${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 700 db_my_backup.sh
# mkdir -p /var/www/backup/db_bak
# chmod 777 /var/www/backup/db_bak
②バックアップ処理を実行
# /var/www/system/db_my_backup.sh
③cron に設定を追加し、定期的にバックアップ
# crontab -e
0 7 * * * /var/www/system/db_my_backup.sh > /dev/null 2>&1

Web構成ファイル(html配下)復元

① リストアに使用するHTML バックアップファイルをサーバーの「/(ルート)」ディレクトリへ格納 する

# cd /var/www/backup/html_bak
# cp html_back_<タイムスタンプ>.tar.gz /

②ファイルを展開する

# cd /
# tar zxvf html_back_<タイムスタンプ>.tar.gz

MySQL のデータを復元する

① データベースバックアップファイルを任意のディレクトリに保存
# cd /var/www/backup/db_bak
# gzip -d mysql_backup_<タイムスタンプ>.dump.gz
② MySQL をリストア
# mysql -u root -p < mysql_backup_<タイムスタンプ>.dump
Enter password: ←MySQL 用のrootパスワードを入力
タイトルとURLをコピーしました