CentOs7利用mysqldump命令+crond定时任务实现数据库定时备份

一、crond服务启动关闭命令

/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload

CentOs7也可以使用systemctl来实现

systemctl start crond.service
systemctl restart crond.service
systemctl stop crond.service
systemctl status crond.service

ps:如果需要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入/sbin/service crond start 即可;

二、编写定时任务脚本

#!/bin/bash

currenttime=$(date +%Y%m%d%H%M%S);

currentyear=$(date +%Y);

currentmonth=$(date +%m);

currentday=$(date +%d);


# 进入当前Shell程序的目录
cd `dirname $0`
mkdir -p ./logs
logfile=./logs/mysqldump-$currentyear-$currentmonth-$currentday.log
touch ${logfile}
 
echo "current time $currenttime" >> $logfile;

echo "current year:$currentyear" >> $logfile;

echo "current month:$currentmonth" >> $logfile;

echo "current day:$currentday" >> $logfile;
 
hostname=`hostname`;



path="/data/minio/data/oneclick/mysql/$currentyear/$currentmonth/$currentday/"

echo "this is hostname:$hostname" >> $logfile
if [ -d "/data/minio/data/oneclick/mysql/$currentyear/$currentmonth/$currentday/"  ];then
    echo "the dir[/data/minio/data/oneclick/mysql/$currentyear/$currentmonth/$currentday/ ] is exit" >> $logfile
else
    mkdir -p /data/minio/data/oneclick/mysql/$currentyear/$currentmonth/$currentday/
fi

echo "start mysqldump...." >> $logfile

path="${path}oneclick-$currenttime.sql.gz"

echo "current mysqldump backup file path:$path" >> $logfile

mysqldump -h172.31.27.32 -p3306 -uroot -punnet@123456 --databases oneclick | gzip > $path

echo "end mysqldump....." >> $logfile

ps:如何利用mysqldump命令实现mysql数据库备份,可以参考另一篇:mysqldump实现mysql数据库备份

三、将脚本设置为定时运行

  • 查看当前用户的crontab,输入 crontab -l
  • 编辑当前用户的crontab,输入 crontab -e
  • 删除当前用户的crontab,输入 crontab -r
  • 列出任务列表的crontab,输入crontab -l

ps:基本格式 :

*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

四、定时任务执行

CentOs7利用mysqldump命令+crond定时任务实现数据库定时备份_第1张图片
systemctl
crontab.png

ps:30 23 * * * /data/mysql-5.28/crontab_mysql_dump.sh表示每天晚上23:30执行该脚本;

CentOs7利用mysqldump命令+crond定时任务实现数据库定时备份_第2张图片
crontab-log

欢迎关注南阁公众号

CentOs7利用mysqldump命令+crond定时任务实现数据库定时备份_第3张图片
南阁子也

你可能感兴趣的:(CentOs7利用mysqldump命令+crond定时任务实现数据库定时备份)