数据库备份

# !/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

你可能感兴趣的:(数据库)