Contents
1. システムのバックアップ
1.1 /var/www/html 配下のバックアップ
①/var/www/systemディレクトリーを作成
1 |
# mkdir /var/www/system |
②/var/www/system配下にbackup_all.shスクリプト作成
1 |
# vi /var/www/system/backup_all.sh |
backup_all.shスクリプト内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#!/bin/bash #=========================================================== # : 環境初期設定 #=========================================================== #日付処理関連 TODAY=`/bin/date +%Y%m%d` DAY_AGO=`/bin/date --date '7day 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} |
1 2 3 |
# chmod 777 /var/www/system/backup_all.sh # mkdir -p /var/www/backup/www_bak # chmod 777 /var/www/backup/www_bak |
1 2 |
# crontab -e 0 6 * * * /var/www/system/backup_all.sh > /dev/null 2>&1 |
1.2 Mysqlのデータベースバックアップ
①/var/www/system配下にdb_backup.shスクリプト作成
1 |
# vi /var/www/system/db_backup.sh |
db_backup.shスクリプト内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#!/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" #------------ 編集項目---------------------------------------- #MYSQL接続設定 MYUSER="root" #MySQL接続ユーザー名 MYPASS="********" #MySQL接続パスワード #------------ 編集項目ここまて ---------------------------------------- #日付処理関連 TIME_STRING=`/bin/date '+%Y%m%d'` DAY_AGO=`/bin/date --date '7day 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 #========================================================================= # # STEP020 : バックアップ処理 # #========================================================================= /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} |
1 2 3 |
# chmod 777 /var/www/system/db_backup.sh # mkdir -p /var/www/backup/db_bak # chmod 777 /var/www/backup/db_bak |
1 2 |
# crontab -e 0 7 * * * /var/www/system/db_backup.sh > /dev/null 2>&1 |
2. システムの復元
2.1 HTML配下 バックアップファイルの復元
① バックアップに使用するHTML バックアップファイルを、「/(ルート)」ディレクトリへ格納
最新のタイムスタンプの付いたバックアップファイルを選択(例としてwww_back_20211201.tar.gz)
1 2 3 4 |
# cd /var/www/backup/www_bak # cp www_back_20211201.tar.gz / # cd / # tar zxvf www_back_20211201.tar.gz |
2.2 MySQL データベースを復元
①DB バックアップファイルを任意のディレクトリに保存し、データを解凍
1 2 |
# cd /var/www/backup/db_bak # gzip -d mysql_backup_20211201.dump.gz |
②MySQL をリストア
1 2 |
# # mysql -u root -p < mysql_backup_20211201.dump Enter password: ←MySQL 用のルートパスワードを入力します(表示されません) |