• CentOS6.5 上crontab每天自动备份mysql数据库


    步骤:

    1. sudo vi /etc/crontab  #编辑crontab任务

    2.输入01 12 * * * root /usr/local/mysql/backup/backup.sh >> /usr/local/mysql/backup/error.log 2>&1  #表示每天12点01分以root用户执行/usr/local/mysql/backup/backup.sh备份脚本,错误日志输出到/usr/local/mysql/backup/error.log,方便查找问题

    3./etc/crontab 内容如下:

    !/bin/sh
    source /etc/profile
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/

    # For details see man 4 crontabs


    # Example of job definition:
    # .---------------- 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
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed
    01 12 * * * root /usr/local/mysql/backup/backup.sh >> /usr/local/mysql/backup/error.log 2>&1

    4.sudo /usr/local/mysql/backup/backup.sh   #编辑脚本内容

    5.在脚本中输入以下内容

    #!/bin/sh
    time="$(date +"%Y%m%d%H%M")"  
    sudo /usr/local/mysql/bin/mysqldump 数据库名 | gzip > /usr/local/mysql/backup/adshare_$time.sql.gz   #备份并压缩文件
    find /usr/local/mysql/backup/ -name "adshare_*.sql.gz" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1  #删除7天前的备份文件

    #注:这里不用sudo /usr/local/mysql/bin/mysqldump -u 用户名 -p密码 数据库名 | gzip 这种形式,不然会报Warning: Using a password on the command line interface can be insecure. 这里我们将数据库用户名和密码保存在数据的conf配置文件中,例如我的配置文件是/etc/my.cnf,在my.cnf中加入

    [mysqldump]

    user=用户名

    password=密码

    6.sudo chmod 777 backup      #给backup文件夹授权

    sudo chmod 777 backup.sh    #给backup.sh 文件授权

    7.sudo /etc/rc.d/init.d/crond start 启动脚本,如果脚本已经启动则用sudo /etc/rc.d/init.d/crond restart 重启脚本

    遇到的问题:

    备份脚本手动执行没有任何问题,但是放在crontab定时任务中就出现备份的脚本文件为空,查资料后发现有的人说是因为mysqldump的路径写的是相对路径,改成绝对路径即可,但是我的路径写的是绝对路径,后面查看error.log日志发现报sudo: sorry, you must have a tty to run sudo 错误。执行 sudo vi /etc/sudoers 将Defaults    requiretty 修改为Defaults:nobody !requiretty,表示仅 nobody 用户不需要控制终端。按esc输入::wq!强制保存,这样文件就能正常备份了。

    生命不止,奋斗不息
  • 相关阅读:
    Oracle基础知识
    tomcat服务器
    jquery实现常用UI布局
    css画布
    css布局
    jquery快速常用技能
    css快速浏览
    css选择器
    spring boot项目mybatis配置注解+配置文件
    sass的安装和基础语法
  • 原文地址:https://www.cnblogs.com/shione/p/7355594.html
Copyright © 2020-2023  润新知