mysql使用crontab定时备份

时间:2019-09-19
本文章向大家介绍mysql使用crontab定时备份,主要包括mysql使用crontab定时备份使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1,

安装crontab

yum install vixie-cron

yum install crontabs

说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
//+++++++++++++++++++++++++++++++++++
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动:
chkconfig --level 35 crond on

2,

赋予脚本执行权限

chmod +x test.sh

添加定时任务

crontab -e

*/5 * * * * /home/test.sh

说明:

运行crontab –e 编写一条定时任务 */5 * * * * /home/test.sh 在每5分钟执行一次test.sh脚本

查看当前所有定时任务

crontab -l

删除当前定时任务

每隔12小时备份一次

1 */12 * * * /usr/local/backup/backupMysql.sh  

每天凌晨1点删除一个月之前的备份
1 1 * * * /usr/local/backup/delBackupMysql.sh

备份脚本

USER="root"
PASSWORD="数据库密码"
DATABASE1="jxt"
#DATABASE2=zabbix 
BACKUP_DIR="/usr/local/backup/mysql"  #备份数据库文件的路径 
LOGFILE="/usr/local/backup/mysql/data_backup.log"    #备份数据库脚本的日志文件 
DATE=`date +%Y%m%d-%H%M -d -3minute`     #获取当前系统时间-3分钟 
DUMPFILE1="$DATE-jxt.sql"                #需要备份的数据库名称 
#DUMPFILE2=$DATE-zabbix.sql 
ARCHIVE1="$DUMPFILE1.gz"                #备份的数据库压缩后的名称 
#ARCHIVE2=$DUMPFILE2-tar.gz 
#cat /usr/local/backup
#!/bin/bash  
#Shell Command For Backup MySQL Database Everyday Automatically By Crontab  
#time 2015-5-20 
if [ ! -d $BACKUP_DIR ];      #判断备份路径是否存在,若不存在则创建该路径 
then
mkdir -p "$BACKUP_DIR"
fi

echo -e "\n" >> $LOGFILE   
echo "------------------------------------" >> $LOGFILE  
echo "BACKUP DATE:$DATE">> $LOGFILE  
echo "------------------------------------" >> $LOGFILE  

cd $BACKUP_DIR                           #跳到备份路径下 
/usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD $DATABASE1 > $DUMPFILE1    #使用mysqldump备份数据库 

if [[ $? == 0 ]]; then 
tar czvf $ARCHIVE1 $DUMPFILE1 >> $LOGFILE 2>&1                               #判断是否备份成功,若备份成功,则压缩备份数据库,否则将错误日志写入日志文件中去。 
echo "$ARCHIVE1 BACKUP SUCCESSFUL!" >> $LOGFILE  
rm -f $DUMPFILE1 
else  
echo “$ARCHIVE1 Backup Fail!” >> $LOGFILE  
fi
# /usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD $DATABASE2 > $DUMPFILE2 
# if [[ $? == 0 ]]; then 
# tar czvf $ARCHIVE2 $DUMPFILE2 >> $LOGFILE 2>&1 
# echo "$ARCHIVE2 BACKUP SUCCESSFUL!" >> $LOGFILE 
# rm -f $DUMPFILE2 
# else 
# echo “$ARCHIVE2 Backup Fail!” >> $LOGFILE
# fi

删除脚本

BACKUPDIR="/usr/local/backup/mysql/"                            #定义备份文件路径 
KEEPTIME=30                                                           #定义需要删除的文件距离当前的天数 
DELFILE=`find $BACKUPDIR -type f -mtime +$KEEPTIME -exec ls {} \;`     #找到天数大于KEEPTIME天的文件 
for delfile in ${DELFILE}                                              #循环删除满足天数大于七天的文件 
do 
rm -f $delfile 
done

原文地址:https://www.cnblogs.com/suruozhong/p/11550664.html