linux定时任务crontab自动备份mysql数据库

crontab定时任务

打开任务列表文件进行编辑:

crontab -e
 
 
  • 1

文件中每一行都代表一项任务,每行有六个字段,前五段设置时间,第六段设置任务,格式如下: 
minute hour day month week command

字段名称(取值) 
minute(0-59) 
hour(0-23) 
day(1-31) 
month(1-12) 
week(1-7) 
command(脚本或命令)

在以上时间字段中,还可以使用以下特殊字符: 
星号(*): 代表所有可能的值; 
逗号(,) : 列举所有取值,例如:1,3,5; 
中杠(-): 指定取值范围,例如:2-5; 
斜线(/): 指定频率,例如:*/10,如果用在minute字段,表示每十分钟执行一次。

实例:

  1. 每个星期一的上午8点到11点的第3和第15分钟执行

    3,15 8-11 * * 1 command

  2. 每隔4个小时执行

    0 */4 * * * command

详细介绍可以参考 
http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

编辑保存后查看任务列表:

crontab -l


下面介绍备份方式。

第一种: shell + mysqldump

新建bash 文件:

vim ~/tmp/backup.sh

写入:

#! /bin/bash
/usr/bin/mysqldump -uroot -p123456 hkproduce > /var/www/html/hkproduct/db_backup/backup_`date "+%Y%m%d%H%M%S"`.sql
 
 
  • 1
  • 2

修改权限:

chmod +x ~/tmp/backup.sh

创建定时任务,每天3点执行:

0 3 * * * /bin/bash /tmp/backup.sh


第二种: php + mysqldump

新建php 文件:

vim ~/tmp/backup.php

写入:

#! /usr/bin/php -q
<?php
    date_default_timezone_set("Asia/Shanghai"); //设定时区
    $time = date("Ymdhis");
    exec("mysqldump -u root -p hkproduce --password='123456'  > /var/www/html/hkproduct/db_backup/backup.sql.{$time}"); 
?>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改权限:

chmod +x ~/tmp/backup.php

创建定时任务,每天3点执行:

0 3 * * * ~/tmp/backup.php


第三种:php

与第二种方法相同,也是通过定时任务执行php 脚本,但不使用mysqldump,而是用php 函数读取数据库内容后按照sql文件的格式生成备份文件,代码较长,有兴趣的可以在网上搜一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值