linux mysql 备份

发布于:2025-02-10 ⋅ 阅读:(58) ⋅ 点赞:(0)

直接上代码

一,安装cron

1 安装cron
sudo yum install cronie

2 启动cron
sudo systemctl start crond

3 设置开机启动
sudo systemctl enable crond

4 查看任务
crontab -l
没有任务则显示:no crontab for root

二,备份脚本

#!/bin/bash
# 备份文件要保存的目录
basepath='/data1/mysql/bak/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
# 备份数据库生成SQL文件
mysqldump -uroot -p'pwd' database1 > $basepath$(date +%Y%m%d)_database1.sql
mysqldump -uroot -p'pwd' database2 > $basepath$(date +%Y%m%d)_database2.sql
mysqldump -uroot -p'pwd' database3 > $basepath$(date +%Y%m%d)_database3.sql

 
cd $basepath
# 将生成的SQL文件压缩
tar zPcf $(date +%Y%m%d)_database1.tar.gz $(date +%Y%m%d)_database1.sql
tar zPcf $(date +%Y%m%d)_database2.tar.gz $(date +%Y%m%d)_database2.sql
tar zPcf $(date +%Y%m%d)_database3.tar.gz $(date +%Y%m%d)_database3.sql

 
# 删除7天之前的备份数据
find $basepath -mtime +7 -name "*.tar.gz" -exec rm -rf {} \;
# 删除生成的SQL文件
rm -rf $basepath/*.sql

在当前路径下,执行:

./mysqlbak.sh 

显示这个代表成功:mysqldump: [Warning] Using a password on the command line interface can be insecure.

如果报错:-bash: ./mysqlbak.sh: cannot execute: required file not found

1 设置权限
chmod -R 777 /data1

2 查看文本格式
cat -A mysqlbak.sh
如果发现:^M$ 字符说明是windows格式

3 设置Linux格式
sed -i "s/\r//" mysqlbak.sh

4 再次启动
./mysqlbak.sh

三,设置cron任务

1 设置cron任务(vim编辑)
crontab -e

2 设置cron参数(每7天早上2点执行)
0 2 */7 * * sh /data1/mysqlbak.sh

3 保存退出后显示
crontab: installing new crontab

4 重启cron
systemctl restart crond


网站公告

今日签到

点亮在社区的每一天
去签到