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

OracleLinux10.2 : System Backup and Restore

1. Backup under /var/www/html

Create backup script file

# cd /var/www/system
# vi backup_html.sh

Contents of 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}

Set permissions

# chmod 700 backup_html.sh

Create save directory and Set permissions

# mkdir -p /var/www/backup/html_bak
# chmod 777 /var/www/backup/html_bak

scheduled execution
Add settings to cron to run backups daily at 6:00 a.m.

# crontab -e
0 6 * * * /var/www/system/backup_html.sh > /dev/null 2>&1

2. MariaDB database backup

Create backup script file

# cd /var/www/system
# vi db_backup.sh

Contents of db_backup.sh

#!/bin/bash

export LANG=ja_JP.eucJP
export PATH="$PATH":/usr/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 connection username
MYPASS="xxxxxxxxxxx" #MariaDB connection password

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 > ${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}

Set permissions

# chmod 700 db_backup.sh /var/www/system/db_backup.sh

Create save directory and Set permissions

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

scheduled execution
Add settings to cron for periodic backups

# crontab -e
0 7 * * * /var/www/system/db_backup.sh > /dev/null 2>&1

3. Restore backup files under html

① Store HTML backup files in "/ (root)" directory
Specify the backup file with the latest date

# cd /var/www/backup/html_bak
# cp html_back_[time stamp].tar.gz

Expand file

# cd /
# tar zxvf html_back_[time stamp].tar.gz

4. Restore MariaDB backup file

① Save the DB backup file to a directory of your choice and extract it
Specify the backup file with the most recent date

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

Restore MariaDB database

# mysql -u root -p < mariadb_backup_[time stamp].dump
Enter password: ←MariaDB root password