ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Linux Crontab实现定时备份和删除Docker中的Mysql数据库

2021-05-17 14:34:57  阅读:242  来源: 互联网

标签:databases backup Mysql Linux db Crontab mysql Backups seafile


备份数据库

# 备份所有数据库
mysqldump -uroot -p123456 --lock-tables=false --all-databases > /data/mysqlbak/`date +%Y%m%d`.sql
# 备份不同的数据库到不同的目录
mysqldump -uroot  -p123456 baskets > /Backups/mysql-backup/databases/baskets/$(date +%Y%m%d_%H%M%S)_baskets.sql
mysqldump -uroot  -p123456 edusoho > /Backups/mysql-backup/databases/edusoho/$(date +%Y%m%d_%H%M%S)_edusoho.sql
mysqldump -uroot  -p123456 gt > /Backups/mysql-backup/databases/gt/$(date +%Y%m%d_%H%M%S)_gt.sql
mysqldump -uroot  -p123456 typecho > /Backups/mysql-backup/databases/typecho/$(date +%Y%m%d_%H%M%S)_typecho.sql

Docker中的数据库备份

# 备份Docker中的数据库到指定目录
docker exec 容器ID或名称 mysqldump  -uroot -p密码  --opt ccnet_db > /home/seafile-sqlbak/databases/ccnet_db_$(date +%Y%m%d).sql

删除数据库

# 删除所有30天前的数据库
find /data/mysqlbak -mtime +30 -name "*.*" -exec rm -rf {} \;
# 删除 Local Mysql Databases
find /Backups/mysql-backup/databases/baskets -mtime +30 -name "*.*" -exec rm -rf {} \;
find /Backups/mysql-backup/databases/edusoho -mtime +30 -name "*.*" -exec rm -rf {} \;
find /Backups/mysql-backup/databases/gt -mtime +30 -name "*.*" -exec rm -rf {} \;
find /Backups/mysql-backup/databases/typecho -mtime +30 -name "*.*" -exec rm -rf {} \;
# 删除 Docker Seafile Mysql Databases
find /opt/docker_seafile/seafile-mysql/db/seafile-backup/databases/ccnet_db -mtime +30 -name "*.*" -exec rm -rf {} \;
find /opt/docker_seafile/seafile-mysql/db/seafile-backup/databases/seafile_db -mtime +30 -name "*.*" -exec rm -rf {} \;
find /opt/docker_seafile/seafile-mysql/db/seafile-backup/databases/seahub_db -mtime +30 -name "*.*" -exec rm -rf {} \;

加入Crontab定时任务

crontab -e
# m h  dom mon dow   command
  0 0   *   *   *    /Backups/mysql-backup/mysql-backup.py
  0 0   *   *   *    /opt/docker_seafile/seafile-mysql/db/seafile-backup/seafile-backup.py
  0 0   *   *   *    /Backups/mysql-backup/mysql-backup-del.py

以上的 0 0 * * * 代表,在每天的凌晨 00:00 分执行脚本。

0 1 */3 * * 代表,每天3的凌晨 01:00 分执行脚本。
0 1 */3 * * 代表,每天3的凌晨 01:00 分执行脚本。
0 1 * 1 * 代表,每天3的凌晨 01:00 分执行脚本。
0 1 * 0 * 代表,每周日的凌晨 01:00 分执行脚本。
0 1 1 * * 代表,每月1号的凌晨 01:00 分执行脚本。

 

本文为转载,感谢原作者分享。

原文地址:https://blog.dwtowen.com/archives/202/

标签:databases,backup,Mysql,Linux,db,Crontab,mysql,Backups,seafile
来源: https://www.cnblogs.com/colinliu/p/Crontab-sqlbak.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有