步骤:

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!强制保存,这样文件就能正常备份了。

CentOS6.5 上crontab每天自动备份mysql数据库的更多相关文章

  1. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  2. 在生产环境下实现每天自动备份mysql数据库

    1.描述 我相信很多朋友在工作都都会有这种需求,老板或领导让你每天都要备份mysql数据库,你该如何实现呢,是每天到一定的时间在服务器上敲一遍mysql的备份命令,还是想写个脚本,定时定点的自动备份呢 ...

  3. 每天自动备份MySQL数据库的shell脚本

    经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行.我们需要一种安全的,每天自动备份的方法 ...

  4. Linux 每天自动备份mysql数据库的方法

    Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载   linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤.   /usr/bin为my ...

  5. Linux自动备份MySQL数据库脚本代码

    下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是, ...

  6. 如何在生产环境下实现每天自动备份mysql数据库

    1.描述 通"shell脚本+定时任务"的方式来实现自动备份mysql数据库. 2.环境 备份路径:/data/mysqlbak/ 备份脚本:/data/mysqlbak/mysq ...

  7. 一个自动备份mysql数据库的bat文件内容

    自动备份mysql数据库,并已当前的日期时间为目录 copy过去, xcopy将近15年没有用dos命令,还是这么亲切 另 本方法是备份数据库文件,不是dump导出,然后再计划任务中使用,我用的是wa ...

  8. 利用crontab每天定时备份MySQL数据库

    当数据库服务器建立并正式投入生产使用后,我们不得不担忧一个问题:当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小. 我这里以本博客的wordpress数据为例,来讨论并实现 ...

  9. 定时自动备份mysql数据库

    新建备份文件并赋予可以执行的权限 mkdir -p /home/mysql_backup/ touch /home/mysql_backup/mysql_backup.sh chmod 551 /ho ...

随机推荐

  1. JAVA核心技术I---JAVA基础知识(数据类型)

    一:基本类型 –boolean 布尔 –byte 字节 –short/int/long 短整数/整数/长整数 –float/double 浮点数 –char 字符 (一)boolean 只有true, ...

  2. Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理

    网上找了一大堆的例子,没一个跑通的,都是copy转发,哎,整理得好辛苦..做个笔记,方便正遇到此问题的猿们能够得到帮助....废话不多说,贴代码..... 项目结构说明: 1.dao层的admin.w ...

  3. Junit4学习与使用【转】

    参考: http://blog.csdn.net/qqhjqs/article/details/42219037

  4. Github 开源项目(二)gorun (go语言工具)

    gorun是一个工具,可以在Go程序的源代码中放置“爆炸线”来运行它,或者明确运行这样的源代码文件. 它的创建旨在试图让Go更加吸引那些习惯于Python和类似语言的人们,他们使用源代码进行最明显的操 ...

  5. [Android] Android最简单ScrollView和ListView滚动冲突解决方案

    [Question]问题描述: 单独的ListView列表能自动垂直滚动,但当将ListView嵌套在ScrollView后,会和ScrollView的滚动滑块冲突,造成ListView滑块显示不完整 ...

  6. java的TCP和UDP编程

    TCP 客户端: import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter ...

  7. Java集合操作精华总结

    一.Set1.HashSet boolean add(E e) 添加 访问 boolean remove(E e) 删除 Iterator<E> iterator 遍历 int size( ...

  8. redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型

    Redis有5中数据结构,他们是键值对中的值,对于键来说,有一些通用的命令: 一.查看所有键 keys * 二.获取键总数:dbsize 三.检查键是否存在 exists 如果存在返回1,不存在返回0 ...

  9. z分数

    一.公式 计算过程为样本x的值与样本总体平均值的差,再除以标准差. 当以标准差为单位,要统计样本与均值偏离了多少值时,就用此公式.

  10. Debian Security Advisory(Debian安全报告) DSA-4406-1 waagent

    Package        : waagentCVE ID         : CVE-2019-0804 Francis McBratney发现Windows Azure Linux代理创建了具有 ...