脚本mysqldump定时备份数据库
为了脚本不用输入密码,需要先设置mysql login-path,如下命令。host user需要改成你的mysql信息。
mysql/bin/mysql_config_editor set --login-path=root_login --host=127.0.0.1 --user=root --password
输入mysql密码后,会在 /root/目录下生成
备份脚本如下:
#!/bin/bash #需要建立/sql_backup/data/文件夹 #如下可配置需要备份的数据库 如 common biz1 DBS=("common" "biz1") for DBNAME in ${DBS[@]};do #DBNAME="common" FILE=$(date "+%Y%m%d%H%M%S")${DBNAME}.sql GZFILE=$FILE.tar.gz cd /sql_backup/data/ #mysqldump 命令路径 /usr/local/mysql/bin/mysqldump --login-path=root_login $DBNAME > $FILE tar -zcf $GZFILE $FILE rm -f $FILE done
然后执行下此脚本,看看能否生成压缩的sql文件,能生成说明运行正常,然后写计划任务定时执行就ok了。
我的设置每天凌晨两点执行,生成的文件如下图:
这个脚本还可以优化,比如按照日志放到一个文件夹里,再有就是做一个批量导入用于恢复数据,当然了,此脚本只适用于开发环境用,线上肯定要用类似binlog的功能做恢复的,才能保证业务数据不丢失。
注:如果在docker容器内运行crontab,可使用如下命令启动 crond服务。
/usr/sbin/crond -i
计划服务在容器内部执行,我参考的这篇文章
文字均为博主原创,转载请联系博主,谢谢!