!/bin/bash
定义属性
名称:mysqlback.sh
本地存放备份数据库目录
backupdir=/data/powerhealth/softwore/mysqlback
如果文件夹不存在,创建文件夹
if [ ! -d $backupdir ]; then
mkdir -p $backupdir
echo -e "备份目录 $backupdir 创建成功。"
else
echo "备份目录 $backupdir 已经存在。"
fi
备份文件后缀时间
time="$(date +%Y%m%d_%H%M%S)"
echo "开始备份数据库..."
注意数据库备份密码 设置在/etc/my.cnf中 [mysqldump] user=xx password=xxx
备份所有数据库到本地(不压缩)
echo '/data/mysql8/bin/mysqldump --opt --all-databases > backupdir/all_time.sql'
压缩
#/data/mysql8/bin/mysqldump --opt --all-databases | gzip > backupdir/all_time.sql.gz
备份单个数据库(不压缩)
/usr/bin/mysqldump 数据库名 > backupdir/databases_time.sql
echo "备份数据完成。"
只保留7天的备份文件
find $backupdir -name "databases_*.sql" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
echo "删除备份成功。"
编辑crontab 路径 /etc 每天0点执行
0 0 * * * /x/mysqlback.sh
service crond reload