最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

在 Linux 上实现 MySQL 定时备份_创建脚本文件

XAMPP相关 admin 1443浏览 0评论

在 Linux 上实现 MySQL 定时备份。

GA00000098

1 准备备份的脚本文件

1.1 创建脚本文件

vi /usr/local/mysqldata/bak/bak.sh

# !/bin/bash
# db-export variables
EXPORT_DB_HOST="127.0.0.1"
EXPORT_DB_PORT="3306"
EXPORT_DB_USER="root"
EXPORT_DB_PASSWORD="123456"
EXPORT_DB_NAME="db1"
EXPORT_DB_CMD="/usr/local/mysql/bin/mysqldump"
EXPORT_CMD_PREFIX="$EXPORT_DB_CMD -h$EXPORT_DB_HOST -P$EXPORT_DB_PORT -u$EXPORT_DB_USER -p$EXPORT_DB_PASSWORD $EXPORT_DB_NAME"

# db-import variables
IMPORT_DB_HOST="127.0.0.1"
IMPORT_DB_PORT="3306"
IMPORT_DB_USER="root"
IMPORT_DB_PASSWORD="123456"
IMPORT_DB_NAME="db2"
IMPORT_DB_CMD="/usr/local/mysql/bin/mysql"
IMPORT_CMD_PREFIX="$IMPORT_DB_CMD -h$IMPORT_DB_HOST -P$IMPORT_DB_PORT -u$IMPORT_DB_USER -p$IMPORT_DB_PASSWORD $IMPORT_DB_NAME"

# bak variables
# BAK_FILE_DATE=`date +%Y%m%d%H%M%S`
BAK_FILE_DATE=`date +%Y%m%d`
BAK_FILE_DIR="/usr/local/mysqldata/bak/$BAK_FILE_DATE"
# BAK_FILE_DIR="/usr/local/mysqldata/bak/$(date +%Y%m%d)"

# shell script
echo start $(date +%Y-%m-%d_%H:%M:%S).

mkdir -p $BAK_FILE_DIR

echoexport start.
tabs="tb1 tb2"
echoexport tbs...
$EXPORT_CMD_PREFIX$tbs > $BAK_FILE_DIR/tbs.sql
echoexport tbs...done.
echoexport end.

echo import start.
echo import tbs...
IMPORT_CMD_PREFIX < $BAK_FILE_DIR/tbs.sql
echo import tbs...done.
echo import end.

echo end $(date +%Y-%m-%d_%H:%M:%S).

1.2 脚本文件添加可执行权限

chmod u+x /usr/local/mysqldata/bak/bak.sh

1.3 测试脚本文件

sh /usr/local/mysqldata/bak/bak.sh
# 或者
cd /usr/local/mysqldata/bak
./bak.sh

2 添加计划任务 – crontab

# 编辑任务。会打开 vi,增加上述脚本文件的配置,下面是每1分钟执行一次。实际会对应到 /var/spool/cron 目录下的 root (当前用户)文件中。
crontab -e
*/1 * * * * /usr/local/mysqldata/bak/bak.sh

# 查看任务
crontab -l
*/1 * * * * /usr/local/mysqldata/bak/bak.sh。

# 如果任务执行失败了,可以通过以下命令查看任务日志
tail -f /var/log/cron

# 输出类似如下:
Oct 31 15:19:18 gridserver crontab[8951]: (root) REPLACE (root)
Oct 31 15:19:18 gridserver crontab[8951]: (root) END EDIT (root)
Oct 31 15:20:01 gridserver crond[4487]: (root) RELOAD (/var/spool/cron/root)
Oct 31 15:20:01 gridserver CROND[8965]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 31 15:20:01 gridserver CROND[8966]: (root) CMD (/usr/local/mysqldata/bak/bak.sh)
Oct 31 15:21:01 gridserver CROND[8980]: (root) CMD (/usr/local/mysqldata/bak/bak.sh)
Oct 31 15:22:01 gridserver CROND[8991]: (root) CMD (/usr/local/mysqldata/bak/bak.sh)
Oct 31 15:23:01 gridserver CROND[9001]: (root) CMD (/usr/local/mysqldata/bak/bak.sh)
Oct 31 15:24:01 gridserver CROND[9015]: (root) CMD (/usr/local/mysqldata/bak/bak.sh)

转载请注明:XAMPP中文组官网 » 在 Linux 上实现 MySQL 定时备份_创建脚本文件

您必须 登录 才能发表评论!