|
|
|
@ -2,55 +2,50 @@ |
|
|
|
|
|
|
|
# 设置数据库配置 |
|
|
|
USER="root" |
|
|
|
PASSWORD="pass" |
|
|
|
PASSWORD="a24de3846e38cbeb" |
|
|
|
dbname="iwebcoin" |
|
|
|
DEFAULTS_FILE="/etc/my.cnf" # 指定你的配置文件 |
|
|
|
#DATADIR="/var/lib/mysql" |
|
|
|
BASE_BACKUP_DIR="/www/embk/xtr" |
|
|
|
SOCKET_FILE="/tmp/mysql.sock" |
|
|
|
|
|
|
|
#定义备份详细时间 |
|
|
|
backup_time=`date +%Y%m%d%H%M` |
|
|
|
# 获取当前日期 |
|
|
|
CURRENT_DATE=$(date +%Y-%m-%d) |
|
|
|
FULL_BACKUP_DIR="$BASE_BACKUP_DIR/full_$CURRENT_DATE" |
|
|
|
FULL_BACKUP_DIR="$BASE_BACKUP_DIR/$dbname/full_$CURRENT_DATE" |
|
|
|
FULL_BACKUP_LOG="$BASE_BACKUP_DIR/log_full_$CURRENT_DATE.log" |
|
|
|
INCREMENTAL_BACKUP_DIR="$BASE_BACKUP_DIR/incremental_$CURRENT_DATE" |
|
|
|
INCREMENTAL_BACKUP_LOG="$BASE_BACKUP_DIR/log_incremental_$CURRENT_DATE.log" |
|
|
|
|
|
|
|
## check directory has exists |
|
|
|
if [ -e $FULL_BACKUP_DIR ]; then |
|
|
|
echo $FULL_BACKUP_DIR"exists!" |
|
|
|
else |
|
|
|
mkdir -p $FULL_BACKUP_DIR |
|
|
|
fi |
|
|
|
|
|
|
|
if [ ! -e $INCREMENTAL_BACKUP_DIR ];then |
|
|
|
mkdir -p $INCREMENTAL_BACKUP_DIR |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 检查是否为周日 |
|
|
|
if [ "$(date +%u)" -eq 7 ]; then |
|
|
|
# 周日进行全量备份 |
|
|
|
echo "Starting full backup..." |
|
|
|
xtrabackup --defaults-file="$DEFAULTS_FILE" --backup --target-dir="$FULL_BACKUP_DIR" --user="$USER" --password="$PASSWORD" --socket="$SOCKET_FILE" --compress --compress-threads=2 > "$FULL_BACKUP_LOG" 2>&1 |
|
|
|
echo "Full backup completed." |
|
|
|
else |
|
|
|
# 其他天进行增量备份 |
|
|
|
LAST_FULL_DIR=$(ls -d "$BASE_BACKUP_DIR/full_"* | sort | tail -n 1) |
|
|
|
LAST_INCREMENTAL_DIR=$(ls -d "$BASE_BACKUP_DIR/incremental_"* | sort | tail -n 1) |
|
|
|
#备份文件的名称 包括路径 |
|
|
|
backup_data_filename="$BASE_BACKUP_DIR/$dbname/"$backup_time"_xtr.tar.gz" |
|
|
|
|
|
|
|
if [ -z "$LAST_FULL_DIR" ]; then |
|
|
|
echo "No previous full backup found. Exiting." |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -z "$LAST_INCREMENTAL_DIR" ]; then |
|
|
|
echo "No previous incremental backup found. Using the last full backup for the base." |
|
|
|
LAST_INCREMENTAL_DIR="$LAST_FULL_DIR" |
|
|
|
fi |
|
|
|
|
|
|
|
echo "Starting incremental backup based on $LAST_INCREMENTAL_DIR..." |
|
|
|
xtrabackup --defaults-file="$DEFAULTS_FILE" --backup --no-lock --target-dir="$INCREMENTAL_BACKUP_DIR" --incremental-basedir="$LAST_INCREMENTAL_DIR" --user="$USER" --password="$PASSWORD" --socket="$SOCKET_FILE" --compress > "$INCREMENTAL_BACKUP_LOG" 2>&1 |
|
|
|
echo "Incremental backup completed." |
|
|
|
## check directory has exists |
|
|
|
if [ ! -e $FULL_BACKUP_DIR ]; then |
|
|
|
mkdir -p $FULL_BACKUP_DIR |
|
|
|
fi |
|
|
|
|
|
|
|
# 全量备份 |
|
|
|
|
|
|
|
echo "Starting full backup..." |
|
|
|
xtrabackup --user="$USER" --password="$PASSWORD" --databases=$dbname --tables-exclude="failed_jobs||data_aaaaa|data_dkl|data_dpzp|data_dxnc|data_fige|data_gvdc|data_logd|data_loy|data_uoa|data_zph|data_zxl|article_translations_copy1|contract_entrust_copy1|failed_jobs_copy1|user_wallet_copy1|user_wallet_logs_copy1|user_wallet_recharge_copy1|admin_modify_password_logs|admin_operation_log|agent_admin_operation_log|block_control_admin_operation_log|bonus_logs|data_logd|user_agreement_logs|user_login_logs|user_upgrade_logs|user_wallet_logs|user_wallet_logs_copy1" --socket=/tmp/mysql.sock --backup --target-dir=$FULL_BACKUP_DIR --parallel=8 --compress --compress-threads=2 > "$FULL_BACKUP_LOG" 2>&1 |
|
|
|
#xtrabackup --defaults-file="$DEFAULTS_FILE" --backup --target-dir="$FULL_BACKUP_DIR" --user="$USER" --password="$PASSWORD" --socket="$SOCKET_FILE" --databases=$dbname --compress --compress-threads=2 > "$FULL_BACKUP_LOG" 2>&1 |
|
|
|
# 归档打包 |
|
|
|
`tar -zcPf $backup_data_filename $FULL_BACKUP_DIR/` |
|
|
|
# split |
|
|
|
split -b 20M -d -a 1 $backup_data_filename $backup_data_filename\. |
|
|
|
#del folder |
|
|
|
`rm -rf $FULL_BACKUP_DIR` |
|
|
|
# 遍历,然后发送email |
|
|
|
# pcount=`ls $backup_data_filename | wc -l` |
|
|
|
tzpatchs=$(ls $backup_data_filename.[0-9]*) |
|
|
|
|
|
|
|
echo "Full backup completed." |
|
|
|
# send email |
|
|
|
for tf in ${tzpatchs[@]};do |
|
|
|
`/www/mtool -f $tf -c /www/mail.conf > "$FULL_BACKUP_LOG" 2>&1` |
|
|
|
`rm -rf $tf` |
|
|
|
done |
|
|
|
# 执行完退出 |
|
|
|
exit; |