定时自动备份mysql数据库

本文介绍了一个用于MySQL数据库备份的Shell脚本,包括创建可执行备份脚本、配置Cron定时任务实现自动备份及清理旧备份的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章来源:https://www.cnblogs.com/foolishnoob/p/5421462.html

新建备份文件并赋予可以执行的权限

mkdir -p /home/备份文件存放文件夹/
touch /home/备份文件存放文件夹/mysql_backup.sh
chmod 551 /home/备份文件存放文件夹/mysql_backup.sh

编辑/home/mysql_backup/mysql_backup.sh

vim /home/备份文件存放文件夹/mysql_backup.sh

写入以下内容

backupdir=/home/mysql_data
time=` date +%Y_%m_%d_%H_%M_%S `
db_user=数据库用户名
db_pass=密码
/home/mysql/bin/mysqldump -u $db_user -p$db_pass 你的数据库名 | gzip > $backupdir/$time.sql.gz
find $backupdir -name "*.sql.gz" -type f -mtime +5 -exec rm -rf {} \; > /dev/null 2>&1

编辑crontab

crontab -e

在最后一行加入

1 1 * * * /home/备份文件存放文件夹/mysql_backup.sh

重启crontab

service crond restart

3.3 crontab 简单说明

来源:https://blog.youkuaiyun.com/renfufei/article/details/23701765
# cat /etc/crontab 
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
可以发现,crontab 的执行周期有5个部分组成,其中第一个是分钟数,第二个是小时数,第三个是一个月中的第几天。。。 如果是 * 就表示每天都会调度。
user-name 部分,如果需要以其他用户调度,则可以指定,否则不能指定,比如 root 用户就不能指定 root,否则有调度日志,但是没有实际执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值