侧边栏壁纸
博主头像
Mr·Ldd Blog 博主等级

今天也是充满希望的一天!✍️

  • 累计撰写 48 篇文章
  • 累计创建 10 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux:mysql数据库备份

已删除用户
2023-03-04 / 0 评论 / 0 点赞 / 59 阅读 / 0 字

使用shell脚本进行数据库的定时备份

一、编写shell脚本

1>在soft-run(你想在哪里创建都可以)目录下创建mysql_db_backup.sh 文件,使用vim编辑器打开

2>写入代码

#!/bin/bash
# 1.备份目录
BACKUP=/root/soft-run/my_backup_db
# 当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)
echo $DATETIME
# 数据库的地址
HOST=localhost
# 数据库的用户名
DB_USER=root
#数据库的密码
DB_PW=123456
#备份的数据库名
DATABASE=db1

#创建备份目录 如果不存在就创建
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"

# 备份数据库
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz

# 将文件处理成 tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
# 删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}


# 删除十天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库${DATABASE} 成功"

3>按esc键打出英文冒号,输入wq保存并退出

4>给脚本设置权限

chmod 777 mysql_db_backup.sh

5>执行该脚本

sh mysql_db_backup.sh

6>如果执行脚本提示没有"mysqldump "命令,那么添加软链接文件

6.1>不知道mysqldump命令在路径,可以使用该命令查找路径

find / -name mysqldump -print

6.2>映射一个链接到/usr/bin目录下,相当于建立一个软链接文件

ln -s /root/soft-run/mysql8/bin/mysqldump  /usr/bin

7>编写定时指令  

7.1> 输入指令

crontab -e

7.2>编写代码

#此条代码意思为每隔三天,两点半执行该脚本  进行备份
30 2 */3 * * /usr/sbin/mysql_db_backup.sh

#分  时   日   月  周  |《==============命令行=======================》|

8>查看指令 

crontab -l

9>最后查看解压包备份内容是否正确

10>查看crontab运行日志

cat /var/log/cron

11>注意:如果数据库密码带有特殊字符,可以用单引号包起来

DB_PW='123456%$#@!'

12>副本:

find /tmp -mtime +30 -type f -name "*.zip" -exec rm -rf {} \;
/tmp --设置查找的目录;
-mtime +30 --设置修改时间为30天前;
-type f --设置查找的类型为文件;其中f为文件,d则为文件夹
-name "*" --设置文件名称,可以使用通配符;
-exec rm -rf --查找完毕后执行删除操作;
 {} \; --固定写法

SHELL中find -mtime -atime -ctime
先看下三者的区别:
-atime:最后一次读的时间戳;
-mtime:最后一次修改内容的时间戳;
-ctime:最后一次修改文件属性的时间戳,比如文件的owner和group;当然修改内容也会修改ctime

-mtime后面跟一个整数,表示几天前修改过。也有三种:
-mtime n
-mtime -n
-mtime +n

 -mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件
 -mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名
 -mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名

0

评论区