Linux 下定时备份 Mysql 数据库

4 篇文章 1 订阅

一、准备好备份 mysql 的shell 脚本

1、windows 下创建 sh 文件

backup_mysql.sh

#!/bin/sh
#数据库用户名
user=root
#数据库用户对应密码
password=1234
#数据库名
dbname=test

#数据库备份文件路径
mysql_back_path=/home/zm_scm/backup/

#获取当前日期(格式:20200106)
d1=$(date +%Y%m%d)
#获取当前日期减去7天的日期
d2=$(date -d "-7 day" +%Y%m%d)
#获取当前日期减去30天的日期
d3=$(date -d "-30 day" +%Y%m%d)

#进入数据库备份文件目录下
cd $mysql_back_path

#执行 mysql 备份命令 
#命令格式: mysqldump -u 用户名 -p密码 数据库名 后面还可以接具体表名 > 数据库文件备份路径/备份文件名
#命令解释: mysqldump -u 用户名 -p密码 数据库名 > 数据库文件备份路径/备份文件名
mysqldump -u $user -p$password $dbname > $mysql_back_path/test$d1.sql

#压缩数据库备份文件
#-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中
zip -m test$d1.zip test$d1.sql

#删除7天前的数据库备份文件
if [ -f test$d2.zip ];then
	rm -rf test$d2.zip
fi

2、通过 xftp 工具上传到数据库服务器

3、执行的时候可能会出现一堆的错误提示

在这里插入图片描述

原因是:windows 编辑的 sh 文件与 linux 是有区别的
linux 的换行符是unix编码(LF),windows 的编码换行符是(CR LF)
Windows下编辑保存的文件默认是doc解析

解决方法:
对文件使用vi 编辑命令
随后输入 :set ff=unix 或 :set fileformat=unix 修改解析器,改变下文件编码格式为unix

4、执行时出现警告

在这里插入图片描述
出现这个警告的大意是说,在命令行界面上使用密码可以是不安全的,但是不会影响备份,如果需要去除的话可以百度看看如何操作

5、执行提示 zip not found

在这里插入图片描述
在备份完之后,会进行 zip 压缩,而服务器现在是没有 zip 的功能的,解决方法如下

使用命令安装 zip

yum install zip

二、使用 crontab 完成定时任务的功能

1、编辑 crontab 定时任务

crontab -e

比如每天凌晨 0 点自动执行

0 0 * * * /home/zm_scm/backup_mysql.sh

2、重启 crontab 定时任务

service crond restart

3、查看当前定时任务

crontab -l

在这里插入图片描述

这样每天凌晨的 0 点就能自动备份 mysql 数据文件了

可以通过如下命令查看定时任务执行状况

#查看最近执行的定时任务
tail -f /var/log/cron

#查看最近执行的定时任务的详细状况
tail -f /var/spool/mail/root
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值