编写shell脚本:https://blog.csdn.net/qq_32684319/article/details/86996369
crontab相关:https://www.cnblogs.com/cuisi/p/6251848.html
mysql命令行:https://blog.csdn.net/u012436346/article/details/86570902
mysqldump:https://www.cnblogs.com/markLogZhu/p/11398028.html
目录
备份mysql数据库
编写shell脚本
在linux上添加定时任务
导入备份
将db.sql文件导入到容器/目录下
在容器内执行命令即可成功导入
注:导出所有库到一个sql文件中,通过Navicat或者将sql粘贴到工具中是无法导入成功的
vi /home/mysql/db-backup.sh
#/usr/bin/env bash echo '开始备份数据' now=$(date "+%Y%m%d") backup_dir="/home/backup" #获取容器id mysqlid=`docker ps -aqf "name=service-mysql"` #进入mysql容器 docker exec -i ${mysqlid} bash<<'EOF' #mysqldump导出表结构和数据 if [ ! -d "/backup" ]; then mkdir -p /backup fi if [ -f "/backup/db.sql" ]; then rm -rf /backup/db.sql fi mysqldump --single-transaction -u root -h 127.0.0.1 --password=root --all-databases > /backup/db.sql echo '成功制作备份sql' if [ $? -ne 0 ]; then echo 'mysqldump运行失败' exit EOF fi exit EOF #将容器内sql文件导出到服务器 if [ ! -d "${backup_dir}" ]; then mkdir -p "${backup_dir}" fi docker cp ${mysqlid}:/backup/db.sql ${backup_dir}/db_${now}.sql if [ $? -ne 0 ]; then echo 'docker cp文件失败' exit fi #压缩备份 #删除超过10天的数据 #rm -f &{backup_dir}/db_$(date -d -10day +%Y%m%d).sql echo '完成备份数据'/etc/crontab和crontab -e区别
输入命令crontab -e
crontab -e会自动检查,出现以下情况则表示任务添加成功
重启crontab服务
service crond restart
查看定时任务是否运行:cron的log日志文件
tailf /var/log/cron
导出所有库到一个sql文件中,通过Navicat或者将sql粘贴到工具中是无法导入成功的
环境中不能有和server-mysql相同的服务
