Linux下mysql定时任务备份数据库脚本
创建备份目录
编写备份脚本
#!/bin/bash
#数据库用户名称
USER="root"
#数据库密码
PASSWORD="root123"
#数据库
DATABASE="ywtg_new"
#ip
HOSTNAME="localhost"
#备份目录
BACKUP_DIR=/home/ywtg/backup/
#日志文件
LOGFILE=/home/ywtg/backup/ywtg_backup.log
#时间格式
DATE=`date '+%Y%m%d-%H%M'`
#DATE=`date '+%Y%m%d-%H%M'`
#备份文件
DUMPFILE='ywtg'-$DATE.sql
#压缩文件
ARCHIVE='ywtg'-$DATE.sql.tgz
#组装dump命令
OPTIONS="-h$HOSTNAME -u$USER -p$PASSWORD $DATABASE"
#判断备份文件存储目录是否存在,否则创建该目录
if [ ! -d $BACKUP_DIR ] ;
then
mkdir -p "$BACKUP_DIR"
fi
#开始备份之前,将备份信息头写入日记文件
echo " " >> $LOGFILE
echo " " >> $LOGFILE
echo "------------------" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE
echo "------------------" >> $LOGFILE
#切换至备份目录
cd $BACKUP_DIR
#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件
/usr/local/mysql/bin/mysqldump $OPTIONS > $DUMPFILE
#判断数据库备份是否成功
if [[ $? == 0 ]]; then
#创建备份文件的压缩包
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1
#输入备份成功的消息到日记文件
echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE
#删除原始备份文件,只需保 留数据库备份文件的压缩包即可
rm -f $DUMPFILE
else
echo "Database Backup Fail!" >> $LOGFILE
fi
#输出备份过程结束的提醒消息
echo "Backup Process Done"
#删除7天以上的备份
find /home/ywtg/backup/ -type f -mtime +7 -exec rm {} ;
使用crontab创建定时任务
crontab -e 进入编辑窗口
编辑完成之间wq保存退出,脚本自动生效
任务说明
- 00 02 * * * 每天凌晨两点执行一次
如果需要多个定时任务,直接crontab -e 添加需要执行得脚本就好了
crontab -l 查看任务列表
\
crontab -r 之间删除任务,没有提示,谨慎操作
crond和crontab
crond和crontab是密不可分的
crond
crond 是 Linux 系统下用来周期性地执行某种任务或等待处理某些事件的一个守护进程。当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab
linux提供给使用者自己定义任务,crontab依赖crond进程,crond进程每分钟回去扫描crontab中的定时任务
查看crond进程的状态,默认是根据系统自启动的
查看结果
备份的数据sql
备份的日志文件
还有备份文件,只需要解压tgz包,然后使用mysql命令去还原就可以了
/usr/local/mysql/bin/mysql -hlocalhost -uroot -proot123 ywtg_back < /home/ywtg/backup/ywtg-20220509-1533.sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?