Contents
1. サーバーのバックアップ
1.1 /srv/www/ 配下のバックアップ
①バックアップスクリプトファイルの作成
| 
					 1 2  | 
						# cd /srv/www/system/ # vi www_backup.sh  | 
					
www_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  | 
						#!/bin/bash #日付処理 TODAY=`/bin/date +%Y%m%d` DAY_AGO=`/bin/date --date '7day ago' +%Y%m%d` #バックアップ元 HTDOCS_DIR="/srv/www/htdocs" SYSTEM_DIR="/srv/www/system" #出力ファイル BACKUP_DIR="/srv/www/backup/www_bak" #バックアップファイル出力先 RUN_FLAG="/srv/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 ${HTDOCS_DIR} ${SYSTEM_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  | 
						# chmod 700 www_backup.sh  | 
					
➁格納するディレクトリを作成
| 
					 1 2  | 
						# mkdir -p /srv/www/backup/www_bak # chmod 777 /srv/www/backup/www_bak  | 
					
➂バックアップを実行
| 
					 1  | 
						# /srv/www/system/www_backup.sh  | 
					
④cron に設定を追加し、定期的にバックアップ
| 
					 1 2  | 
						# crontab -e 0 6 * * * /srv/www/system/www_backup.sh > /dev/null 2>&1  | 
					
1.2. MariaDBデータベースバックアップ
①バックアップスクリプトファイルの作成
| 
					 1 2  | 
						# cd /srv/www/system # vi db_my_backup.sh  | 
					
db_my_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  | 
						#!/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" #MariaDB接続ユーザー名 MYPASS="xxxxxxx" #MariaDB接続パスワード TIME_STRING=`/bin/date '+%Y%m%d'` DAY_AGO=`/bin/date --date '10day ago' +%Y%m%d` DB_BAK_DIR="/srv/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 > ${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  | 
						# chmod 700 db_my_backup.sh  | 
					
➁格納するディレクトリを作成
| 
					 1 2  | 
						# mkdir -p /srv/www/backup/db_bak # chmod 777 /srv/www/backup/db_bak  | 
					
③バックアップ実行
| 
					 1  | 
						# /srv/www/system/db_my_backup.sh  | 
					
④cron に設定し、定期的にバックアップ
| 
					 1 2  | 
						# crontab -e 0 7 * * * /srv/www/system/db_my_backup.sh > /dev/null 2>&1  | 
					
2.データの復元
2.1 www配下のバックアップファイルの復元
① リストアに使用するバックアップファイルをサーバーの「/(ルート)」ディレクトリへ保存する
| 
					 1 2  | 
						# cd /srv/www/backup/www_bak # cp www_back_[time-stamp].tar.gz /  | 
					
② ファイルを展開する
| 
					 1 2  | 
						# cd / # tar zxvf www_back_[time-stamp].tar.gz  | 
					
2.2 MariaDB のデータを復元する
① データベースバックアップファイルを任意のディレクトリに保存し、
(例では「/srv/www/backup/db_bak」ディレクトリです)データを解凍します
| 
					 1 2  | 
						# cd /srv/www/backup/db_bak # gzip -d mariadb_backup_[time-stamp].dump.gz  | 
					
② MariaDBデータベースをリストア
| 
					 1 2  | 
						# mysql -u root -p < mariadb_backup_[time-stamp].dump Enter password: ←MariaDB rootのパスワード  | 
					
