• Linux下实现mysql数据库每天自动备份


    Linux下实现mysql数据库每天自动备份
    
    1、基本操作步骤
    a、创建备份目录 
    mkdir -m 777 /home/wwwroot/backup
    b、创建备份脚本sh
    vim /home/wwwroot/backup/sqlback.sh
    mysqldump -uroot -p123456 databasename | gzip > /home/wwwroot/backup/sql/databasename_$(date +%Y%m%d).sql.gz
    c、设置脚本权限为可执行
    chmod 777 /home/wwwroot/backup/sqlback.sh
    d、创建计划任务
    vim /var/spool/cron/root
    10 2 * * * /home/wwwroot/backup/sqlback.sh
    e、查看计划任务执行日志
    tailf /var/log/cron
    
    d、删除7天前的备份数据
    find /home/wwwroot/backup/sql/ -mtime +7 -name "*.sql.gz" -exec rm -rf {} ;
    
    2、mysqldump命令
    a、只导出数据库表结构 mysqldump -h主机 -P端口 -u用户 -p密码 -d 数据库名 > 备份存储路径
    b、导出数据库表结构及数据 mysqldump -h主机 -P端口 -u用户 -p密码 数据库名 > 备份存储路径
    备注:密码有特殊字符例如:!@#时候可以变成!@# (特殊字符转义一下)
    
    3、crontab定时任务
    a、crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务
    b、任务调动有两类:系统任务调动和用户任务调动
    系统任务调动:/etc/crontab文件 (创建命令时需要在5个8之后加上root command)
    用户任务调动:/var/spool/cron文件夹中创建以用户组命名的文件(root或者userxxx) (执行命令时可不加用户名)
    任务调动格式:
    # .---------------- 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
    # | | | | |
    # * * * * * command
    c、crontab服务操作
    service crond start //启动服务
    service crond stop //关闭服务
    service crond restart //重启服务
    service crond reload //重新载入配置
    service crond status //启动服务
    
    4、删除7天前的备份数据
    find /home/wwwroot/backup/sql/ -mtime +7 -name "*.sql.gz" -exec rm -rf {} ;
    a、/home/wwwroot/backup/sql/ 想要清理的目录
    b、-mtime 标准语句写法
    c、+7 查找7天前的文件
    d、-name 标准语句写法
    e、"*.sql.gz" 查找文件后缀是以.sql.gz结束的所有文件
    f、-exec 标准语句写法
    g、rm -rf 强制删除文件,包括目录
    h、{} ; 标准语句写法
    
    5、10 2 * * * /home/wwwroot/backup/sqlback.sh > /home/wwwlogs/cron 2>&1
    此处只解释:2>&1 标准错误2输出重定向到标准输出1

      

    备注:MySQL 5.6 警告信息 mysqldump: [Warning] Using a password on the command line interface can be insecure的处理方式
      vim /etc/my.cnf 最下面添加如下代码:
       [mysqldump]
       user=your_backup_user_name
       password=your_backup_password
      
    最后直接执行:
    mysqldump databasename | gzip > /home/wwwroot/backup/sql/databasename_$(date +%Y%m%d).sql.gz

      

  • 相关阅读:
    Alice and Bob 要用到辗转相减
    Java经典设计模式
    设计模式---创建类---建造者模式
    luogu4267 TamingtheHerd (dp)
    nowcoder172C 保护 (倍增lca+dfs序+主席树)
    nowcoder172A 中位数 (二分答案)
    bzoj4985 评分 (二分答案+dp)
    luogu4269 Snow Boots G (并查集)
    luogu4268 Directory Traversal (dfs)
    bzoj1001/luogu4001 狼抓兔子 (最小割/平面图最小割转对偶图最短路)
  • 原文地址:https://www.cnblogs.com/lovekingly/p/7459911.html
Copyright © 2020-2023  润新知