简单来说,就是先产生资料 -> 压缩 -> 测试压缩档是否成功 -> 删除原始档
#!/bin/bash
SERVER_PREFIX=$(hostname)
DB_NAME_MARIADB=mariadb
BACKUP_ROOT=/backup_storage/server-a
EXT_SQL=sql
EXT_TAR_BZ2=tar.bz2
BAK_DATE=$(date +%F)
# System config backup setting
SERVER_CONFIG_PATH=/etc
SERVER_CONFIG_BAK_PATH=$BACKUP_ROOT/config
# Backup command for SERVER config
FILENAME_CONFIG=${SERVER_CONFIG_BAK_PATH}/${SERVER_PREFIX}_serverconfig_backup_${BAK_DATE}.tar.bz2
sudo tar jcvf $FILENAME_CONFIG $SERVER_CONFIG_PATH
# Database backup setting
DB_BAK_PATH=$BACKUP_ROOT/db
DB_FULLBAK_PATH=$BACKUP_ROOT/db_fullbackup
# Full Backup command for Mariadb
FILE_NAME_FULLBAK=${SERVER_PREFIX}_${DB_NAME_MARIADB}_fullbackup_${BAK_DATE}
sudo mysqldump --all-databases --single-transaction -quick --lock-tables=fales > $DB_FULLBAK_PATH/$FILE_NAME_FULLBAK.$EXT_SQL -u root -p<輸入你的 root 密碼>
tar jcvf $DB_FULLBAK_PATH/$FILE_NAME_FULLBAK.$EXT_TAR_BZ2 $DB_FULLBAK_PATH/$FILE_NAME_FULLBAK.$EXT_SQL
if [ $? -eq 0 ]; then
rm $DB_FULLBAK_PATH/$FILE_NAME_FULLBAK.$EXT_SQL
fi
# Backup command for barrel database
FILE_NAME_DB_BARREL=${SERVER_PREFIX}_${DB_NAME_MARIADB}_barrel_backup_${BAK_DATE}
sudo mysqldump -u root -p<輸入你的 root 密碼> barrel --single-transaction --quick --lock-tables=false > $DB_BAK_PATH/$FILE_NAME_DB_BARREL.$EXT_SQL
tar jcvf $DB_BAK_PATH/$FILE_NAME_DB_BARREL.$EXT_TAR_BZ2 $DB_BAK_PATH/$FILE_NAME_DB_BARREL.$EXT_SQL
if [ $? -eq 0 ]; then
rm $DB_BAK_PATH/$FILE_NAME_DB_BARREL.$EXT_SQL
fi
# Backup command for barrel_empty database
FILE_NAME_DB_BARREL_EMPTY=${SERVER_PREFIX}_${DB_NAME_MARIADB}_barrel_empty_backup_${BAK_DATE}
sudo mysqldump -u root -p<輸入你的 root 密碼> barrel --single-transaction --quick --lock-tables=false > $DB_BAK_PATH/$FILE_NAME_DB_BARREL_EMPTY.$EXT_SQL
tar jcvf $DB_BAK_PATH/$FILE_NAME_DB_BARREL_EMPTY.$EXT_TAR_BZ2 $DB_BAK_PATH/$FILE_NAME_DB_BARREL_EMPTY.$EXT_SQL
if [ $? -eq 0 ]; then
rm $DB_BAK_PATH/$FILE_NAME_DB_BARREL_EMPTY.$EXT_SQL
fi
# cloud service backup setting
PHPVER=php7
CLOUD_HOME=/solutions/services
CLOUD_PROJECT_BARREL=project_barrel
CLOUD_BAK_PATH=$BACKUP_ROOT/services
# Backup command for Cloud Service -> barrel
FILENAME_SERVICE_BARREL=${CLOUD_BAK_PATH}/${SERVER_PREFIX}_${CLOUD_PROJECT_BARREL}_${PHPVER}_${BAK_DATE}.$EXT_TAR_BZ2
sudo tar jcvf $FILENAME_SERVICE_BARREL ${CLOUD_HOME}/${CLOUD_PROJECT_BARREL}
# WEB backup setting
WEB_HOME=/solutions/www
WEB_SITE_WEBCONNECTv=webconnect.com
WEB_BAK_PATH=$BACKUP_ROOT/web
# Backup command for WEB Service -> webconnect.com
FILENAME_WEB=${WEB_BAK_PATH}/${SERVER_PREFIX}_${WEB_SITE_GOLDTEKCONNECT}_${PHPVER}_${BAK_DATE}.$EXT_TAR_BZ2
sudo tar jcvf $FILENAME_WEB ${WEB_HOME}/${WEB_SITE_WEBCONNECT}