linux服务器上定时自动备份数据库,并保留最新5天的数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.linux的cron服务相关命令

service crond status  #  查看服务开启的状态
service crond start   #  开启cron服务
service crond stop    #  关闭cron服务
service crond restart #  重启cron服务
service crond reload  #  重新加载定时任务列表
chkconfig crond on    #  设置开启cron服务开机自启
chkconfig crond off   #  设置关闭cron服务开机自启

2.备份脚本

#!/bin/bash
date=`date +%Y%m%d%H%M`			# 年月日时分
database=z-spring-boot			# 数据库名称
db_username=root				# 数据库的用户名
db_password="123456"			# 数据库的登录密码
backup_path=/www/sqlautobak     # 备份路径

# backup command
# -R:(–routines:导出存储过程以及自定义函数)
# -E:(–events:导出事件)
# --opt:激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数(通过--opt参数在使用Mysqldump导出Mysql数据库信息时不需要再附加上述这些参数)

/usr/bin/mysqldump -u${db_username} -p${db_password} -h 127.0.0.1 -R --opt ${database} | gzip > ${backup_path}\/${database}_${date}.sql.gz

#	备份最近五天的数据
find ${backup_path} -mtime +5 -name "${database}_*.sql.gz" -exec rm -f {} \;

脚本编写完成后,授权成功后,可以直接执行,测试一下脚本是否有问题。
可能会报错

mysqldump: [Warning] Using a password on the command line interface can be insecure.

解决方法
修改MySQL的配置文件,my.conf文件(在/etc目录下)
加上用户名,密码!然后保存,重启MySQL服务!
在这里插入图片描述
然后去掉脚本中-p的这段代码:

# 去掉下面这段代码
-p${db_password}

3.给脚本赋执行权限

chmod u+x backup.sh

4.编写定时任务

# 输入以下命令,出现一个界面
crontab -e
# 在页面中输入定时执行的语句
00 3 * * * /www/sqlautobak/backup.sh

可实现每天凌晨三点自动执行第二步编写的备份脚本,备份mysql指定数据库到/www/sqlautobak目录下,且只保留最近5天的数据库备份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值