学习笔记040——如何定时备份服务器中的数据库?

目录

1、编写备份脚本:

[2、创建 crontab 定时任务](#2、创建 crontab 定时任务)


需求前景:

Ubuntu系统的服务器中,需要定时备份MySQL数据库中的数据。

确保数据能够得到安全保障。

我的方法:

1、写一个备份数据库的脚本

2、利用Ubuntu的 crontab 每日定时执行脚本。

下面是我的实现方式:

1、编写备份脚本:

bash 复制代码
#!/bin/bash
 
# 设置数据库名,用户和密码
DB_NAME="数据库名"
DB_USER="账号"
DB_PASSWORD="密码"
 
# 创建备份目录
BACKUP_DIR="/home/ys/backup"
mkdir -p $BACKUP_DIR
 
# 备份文件名
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$(date +%Y%m%d%H%M%S).sql"
 
# 执行数据库备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
 
# 压缩备份文件(可选)
gzip $BACKUP_FILE
 
# 删除旧的备份文件(可选) 保留最近七天的
find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +7 -exec rm -f {} \;

文件命名为:backup_mysql.sh

然后放到Ubuntu的某个目录。

修改脚本权限:

bash 复制代码
sudo chmod 777 backup_mysql.sh

2、创建 crontab 定时任务

bash 复制代码
# 进入 crontab 编辑
crontab -e


# 第一次打开需要选择文本的编辑方式
Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 
# 第2个 基础vim
# 第3个 精简版vim


我选择的是:基础Vim

# 插入定时任务:
# 每日执行一次脚本
# /opt/apache-tomcat-8.5.8/logs 是我的脚本存放目录
0 0 * * * sh  /opt/apache-tomcat-8.5.8/logs/backup_mysql.sh

查看 crontab 定时任务:

bash 复制代码
crontab -l

PS:crontab是分用户的。

sudo crontab -l 查看root用户的 。不加sudo 查看当前用户的。

crontab -e 同样道理。

相关推荐
茉莉玫瑰花茶2 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端
长谷深风1113 小时前
索引提速秘籍【个人八股】
mysql·b+树·索引·索引设计原则·存储引擎优化·索引维护成本·字段选择策略
Irene19913 小时前
在 WSL 中下载安装 MySQL,连接到 SQLyog(MySQL 安装在 WSL vs Windows 本地对比)
mysql·wsl
南京码讯光电技术有限公司4 小时前
工业无线AP选型指南:从WiFi 5到WiFi 6+5G CPE,如何构建全覆盖、零漫游、高可靠的智能工厂网络?
服务器·网络·5g
二宝哥5 小时前
Linux虚拟机网络配置
linux·运维·服务器
陳10305 小时前
Linux:进程间通信 和 简单进程池
linux·运维·服务器
jimy16 小时前
改.bashrc,直观地判断本地repo是否有改动
linux·服务器
zt1985q6 小时前
本地部署网页监控工具 Webmonitor 并实现外部访问
运维·服务器·网络·网络协议
匆匆那年9677 小时前
远程 Linux 校园网认证操作手册(本地浏览器法)
linux·运维·服务器
dog2507 小时前
为何新增网络路径反而引入额外时延
服务器·网络·php