目录
需求前景:
Ubuntu系统的服务器中,需要定时备份MySQL数据库中的数据。
确保数据能够得到安全保障。
我的方法:
1、写一个备份数据库的脚本
2、利用Ubuntu的 crontab 每日定时执行脚本。
下面是我的实现方式:
1、编写备份脚本:
#!/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的某个目录。
修改脚本权限:
sudo chmod 777 backup_mysql.sh
2、创建 crontab 定时任务
# 进入 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 定时任务:
crontab -l
PS:crontab是分用户的。
sudo crontab -l 查看root用户的 。不加sudo 查看当前用户的。
crontab -e 同样道理。