Linux-mysqldump自动备份

151 阅读1分钟
## Shell脚本

运行:bash mysql_backup.sh 脚本路径:/cyfc/BackUp/shell/mysql_backup.sh

<pre class="wp-block-code">```
#!/bin/bash

# date: 2021-03-23 
# auth: 张威
# 脚本作用: 本机备份+挂载盘备份
echo =========开始备份数据库=========

#定义:备份文件后缀时间
TIME=_` date +%Y_%m_%d_%H_%M `
DATE=` date +%Y-%m-%d `

#格式:备份文件夹 + 当天日期
BaseUrl=/cyfc/BackUp
backupdir=$BaseUrl/$DATE
mysql_BaseUrl=/www/server/mysql/bin/

#check是否有这个文件夹
if [ ! -d $backupdir  ];then
  mkdir $backupdir
  echo =========新建今日备份文件夹$backupdir=========
else
  echo =========文件夹已存在继续执行命令=========
fi

#需要备份的数据库名称
db_arr=(cyfccph cyfccph_test cyfcportal cyfcportal_test)

#循环备份
for db_name in ${db_arr[*]}
do 
    echo ============================
    echo ☆正在备份数据库:$db_name
	echo .......
	echo .......
	
	dumpFile=$db_name$TIME.sql.gz
    mysqldump $db_name | gzip > $backupdir/$dumpFile
	
	echo ★数据库:$db_name备份完成!
	echo ============================
done

echo =========本地备份完成!=========

#多备一份到外部盘
echo =========开始备份到挂载盘上=========
echo .......
#挂载盘路径
Share_Disk_BaseUrl=/mnt/37001_Share/backup/mysql_backup
#粘一份过去
cp -r $backupdir $Share_Disk_BaseUrl 
echo =========挂载盘备份完成=========

#删除3天前备份
echo =========删除3天前备份=========
find $BaseUrl -mtime +3 -type d | xargs rm -f 



## 加入定时计划

安装crontab
检查服务状态:service crond status
重启服务(修改计划后):service crond restart

### 编辑计划

```
输入命令:crontab -e
```
```

```
```
脚本:30 3 * * *  /cyfc/BackUp/shell/mysql_backup.sh >> /cyfc/BackUp/shell/mysql_backup.log 2>&1


#分钟(0-59)  小时(0-23)  日(1-31) 月(1-12) 星期(0天-6六)
 30            3              *          *          *     
     
#脚本路径                                                   
/cyfc/BackUp/shell/mysql_backup.sh >> 
#日志输出路径 
/cyfc/BackUp/shell/mysql_backup.log 
#2>&1的意思就是将标准错误也输出到标准输出当中(白话:错的也输出到对的里,不影响脚本执行)
2>&1
```
```

https://blog.csdn.net/sinat_25873421/article/details/80340049 

![](http://wp.coderv.cn:83/wp-content/uploads/2021/03/image-3.png)备份路径,当天的备份存存储在文件夹![](http://wp.coderv.cn:83/wp-content/uploads/2021/03/image-2.png)分别是