linux下mysql数据库定时备份
备份操作命令:
mysqldump -uroot --default-character-set=utf8 --hex-blob -p123456 test_oa > /usr/software/data_backup/mysql_backup/test.sql
以下是完整脚本,加--default-character-set=utf8 --hex-blob 防乱码发生。
#!/bin/bash
databases='test'
user='root'
password='123456'
basepath='/usr/software/data_backup/mysql_backup/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
/usr/software/mysql-5.6.24/bin/mysqldump -u$user --default-character-set=utf8 --hex-blob -p$password --database $databases > $basepath$databases-$(date +%Y%m%d).sql && \
tar zPcf $basepath$databases-$(date +%Y%m%d).sql.tgz $basepath$databases-$(date +%Y%m%d).sq
l && \
find $basepath -mtime +2 -name "*.sql.tgz" -exec rm -rf {} \; && \
find $basepath -mtime +2 -name "*.sql" -exec rm -rf {} \; &&
#rm -rf $basepath/*.sql
添加定时执行:
# vim /etc/crontab
在最下面添加
00 3 * * 5 root /home/mysql/3306/backup ###表示每周五3点钟执行一次备份
#service crond restart ###重启crond
#crond使用说明
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed