zoukankan      html  css  js  c++  java
  • linux(CentOS) 下mysql自动备份

    1.创建并编辑文件 /usr/sbin/bakmysql.sh,命令:

    vi /usr/sbin/bakmysql.sh

    内容如下:

    1 db_user="root"
    2 db_passwd="root"
    3 db_name="db_test"
    4 # the directory for story your backup file.you shall change this dir
    5 backup_dir="/usr/software/backup/mysqlbackup"
    6 # date format for backup file (dd-mm-yyyy)
    7 time="$(date +"%Y%m%d%H%M%S")"     
    8 
    9 mysqldump -u$db_user  -p$db_passwd $db_name  > "$backup_dir/$db_name"_"$time.sql"

     注意 -p 和 $db_passwd之间没有空格,不然$db_passwd会被当做参数[数据库名]来解析

     2.修改文件bakmysql.sh属性,使其可执行;

    chmod 777 /usr/sbin/bakmysql.sh

    或 chmod +x /usr/sbin/bakmysql.sh

    脚本文件必须是:可读,可执行。如果不可读,crontab就不能读取脚本内容,更谈不上执行成功。

    3.创建定时任务
    crontab –e 
    #进入编辑界面,内容如下
    00 23 * * * /usr/sbin/bakmysql.sh

    4.则重启下crond服务,命令为

         使用 service crond restart
         或者/etc/init.d/crond restart(Centos7下为systemctl restart crond)
    查看crontab 是否启动成功,检测crontab 服务是否启动,
    service crond start    //启动服务
    service crond stop     //关闭服务
    service crond restart  //重启服务
    service crond reload   //重新载入配置
    service crond status   //查看服务状态 

    mysql备份文件定期删除

    ------------------------------附加一个mysql备份定时删除--------------------------

    1.准备一个脚本文件 rmbak.sh

    backup_dir="/data/backup222/4a_db_backup"
    #删除七天之前的备份
    #find $backup_dir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} ; > /dev/null 2>&1
    #删除一分钟之前的备份
    find $backup_dir -name $db_name"*.sql.gz" -type f -mmin +1 -exec rm -rf {} ; > /dev/null 2>&1

    -type f 表示查找普通类型的文件,f 表示普通文件,可不写
    -mtime +7 按照文件的更改时间来查找文件,+7表示文件更改时间距现在7天以前;如果是-mmin +7表示文件更改时间距现在7分钟以前
    -exec rm {} ; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对{ },一个空格和一个,最后是一个分号;
    /dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行

    2.编辑crontab -e,添加下面,每分钟,如,每分钟一次删除

    */1 * * * * /data/backup222/rmbak.sh

    3.重启:service crond restart

    注意,rmbak.sh文件的权限,r,保证 定时任务能读取脚本内容,x,保证脚本有可执行权限

    附录: Crontab 格式

    分 时 日 月 周 执行命令
    第 1 列分钟 159每分钟* 或者*/1表示,整点分钟数为00或0
    第 2 列小时 1230 表示 0 点)
    第 3 列日 1314 列月 1125 列星期 060 表示星期天)
    第 6 列要运行的命令
    0 3 * * * /backup.sh,此命令表示在每天的凌晨三点执行一次脚本,可自行调整时间
  • 相关阅读:
    CentOS 添加sudo 用户
    CentOS 7 Hostname
    Java 两线程交替打印奇偶数(一)
    Angular2 Forms
    Built-in Components
    How Angular Works
    数字签名算法
    不对称加密算法
    对称加密算法
    消息摘要算法
  • 原文地址:https://www.cnblogs.com/xiaoliu66007/p/4661044.html
Copyright © 2011-2022 走看看