--defaults-file、--socket)。.tar.gz 並清理原目錄。#!/bin/sh
BACKUP_TIME=$(date +%Y-%m-%d-%H-%M-%S)
BACKUP_SOCK=/tmp/mysql3306.sock
BACKUP_CNF=/etc/my3306.cnf
BACKUP_USER=user
BACKUP_PWD=123456
BACKUP_DB=employees
BACKUP_DIR=/data/backup/mysql/backup3306/
BAK=${BACKUP_DIR}${BACKUP_DB}_${BACKUP_TIME}
INNOBACKUPEX=/opt/soft/xtrabackup-1.6.6/innobackupex
# 執行備份
${INNOBACKUPEX} --defaults-file=${BACKUP_CNF} --socket=${BACKUP_SOCK} \
--user=${BACKUP_USER} --password=${BACKUP_PWD} ${BAK} --no-timestamp
# 壓縮
cd ${BACKUP_DIR}
tar zcf ${BACKUP_DB}_${BACKUP_TIME}.tar.gz ${BACKUP_DB}_${BACKUP_TIME}
rm -rf ${BACKUP_DB}_${BACKUP_TIME}
# 日誌
echo "==========$(date +'%Y-%m-%d %H:%M:%S')========== 備份完成" >> ${BACKUP_DIR}/full_backup.log
| 參數 | 用途 |
|---|---|
--defaults-file | 指定實例專用 my.cnf |
--socket | 指定實例 socket 路徑 |
--no-timestamp | 不在目錄名加時間戳,由腳本自行控制 |
--stream=tar | (可選)直接輸出 tar 流,配合管道壓縮 |
--apply-log | (可選)備份後直接 prepare,加速恢復 |
加入 crontab -e:
0 2 * * * /path/to/xtrabackup_full.sh >> /var/log/xtrabackup.log 2>&1