1.Webサイトデータバックアップ
/var/www/html配下のバックアップ
①バックアップスクリプトファイルの作成
# cd /var/www/system # vi backup_html.sh
backup_html.shの内容
#!/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/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}
➁権限許可
# chmod 700 backup_html.sh
➂保存ディレクトリー作成
# mkdir -p /var/www/backup/html_bak # chmod 777 /var/www/backup/html_bak
④定期実行
cronに設定を追加し、定期的にバックアップ
|
1 2 |
# crontab -e 0 6 * * */var/www/system/backup_html.sh > /dev/null 2>&1 ←毎日午前6時にバックアップ実行 |
2.MySQLデータベースバックアップ
①バックアップスクリプトファイルの作成
# cd /var/www/system # vi db_my_backup.sh
#!/bin/bash
export LANG=ja_JP.eucJP
export PATH="$PATH":/usr/local/mysql/bin
export MYSQL_HOME=/usr/local/mysql
export MYLIB=${MYSQL_HOME}/lib
export MANPATH="${MANPATH}":${MYSQL_HOME}/man
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${MYLIB}"
MYUSER="root" #MySQL接続ユーザー名
MYPASS="xxxxxxxxxxx" #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
④定期実行
cronに設定を追加し、定期的にバックアップ
|
1 2 |
# crontab -e 0 7 * * * /var/www/system/db_my_backup.sh > /dev/null 2>&1 |
3.html配下のバックアップファイルの復元
① HTML バックアップファイルを「/(ルート)」ディレクトリへ格納
# cd /var/www/backup/html_bak # cp html_back_20220610.tar.gz / ←最新の日付のバックアップファイルを指定
➁ファイルを展開
# cd / # tar zxvf html_back_20220610.tar.gz
4.Mysqlバックアップファイルの復元
①DB バックアップファイルを任意のディレクトリに保存し、
(例では「/var/www/backup/db_bak」ディレクトリです)データを解凍
# cd /var/www/backup/db_bak # gzip -d mysql_backup_20220610.dump.gz ←最新の日付のバックアップファイルを指定
➁MySQL をリストア
|
1 2 |
# mysql -u root -p < mysql_backup_20220610.dump Enter password: ←MySQL 用のルートパスワード |
