MySql 之定时备份数据库

1. 创建 .sh 文件 bak.sh 

#!/bin/bash
# 设置mysql的登录用户名和密码
source /etc/profile
mysql_user="账号"
mysql_password="密码"
mysql_host="localhost"
mysql_port="3408"
mysql_charset="utf8"
mysql_database="备份的数据库"
# 备份文件存放地址(根据实际情况填写)
backup_location=/sjgr2020/mysql-backup/
# 是否删除过期数据
expire_backup_delete="ON"
expire_days=1
backup_time=`date +%Y%m%d%H%M`
backup_dir=$backup_location
welcome_msg="Welcome to use MySQL backup tools!"
# 判断mysql实例是否正常运行
mysql_ps=`ps -ef |grep mysql |wc -l`
mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then
	echo "ERROR:MySQL is not running! backup stop!"
	exit
else
	echo $welcome_msg
fi
# 备份指定数据库中数据
mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -B $mysql_database> $backup_dir/$mysql_database-$backup_time.sql
flag=`echo $?`
if [ $flag == "0" ];then
	echo "database $mysql_database success backup to $backup_dir/$mysql_database-$backup_time.sql.gz"
else
	echo "database $mysql_database backup fail!"
fi
# 删除过期数据
if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then
	`find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
	echo "Expired backup data delete complete!"
fi

2. 创建定时任务

2.1 新增定时任务

vi /etc/crontab   # 编辑新增定时任务

00 03 * * * /sjgr2020/info/bak.sh   # 添加 每天凌晨3点执行备份,进行 wq! 保存退出

crontab /etc/crontab  # 使之生效

crontab -l   # 查看是否存在

2.2 重启 刷新配置  在查看状态

service crond stop //关闭服务
service crond start //启动服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status // crontab服务状态

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oh LAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值