zoukankan      html  css  js  c++  java
  • Linux Crontab实现定时备份和删除Docker中的Mysql数据库

    备份数据库

    # 备份所有数据库
    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://www.cnblogs.com/colinliu/p/crontab.html

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

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

    博客地址:http://www.cnblogs.com/colinliu/
    博客版权:本文以学习、记录、分享为目的。欢迎大家转载,但务必注明原文地址,谢谢合作!
  • 相关阅读:
    WORD窗体保护密码清除
    在Fedora 23 Server和Workstation上安装LAMP(Linux, Apache, MariaDB和PHP)
    firefox 提示 ssl_error_unsupported_version 的解决方法
    算法题:求一个序列S中所有包含T的子序列(distinct sub sequence)
    Django模板输出Dict所有Value的效率问题
    笔记:LNK2001不代表链接器真的需要链接相关符号
    Windows Restart Manager 重启管理器
    advapi32.dll kernel32.dll 中的两套注册表API
    使用GDI+保存带Alpha通道的图像(续)
    使用GDI+保存带Alpha通道的图像
  • 原文地址:https://www.cnblogs.com/colinliu/p/Crontab-sqlbak.html
Copyright © 2011-2022 走看看