linux mysql 备份

直接上代码

 

一,安装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

 

posted @ 2025-01-14 15:54  正怒月神  阅读(26)  评论(0)    收藏  举报