MySQL备份脚本

脚本放在目录/opt/module/scripts/00-backup/01-msql-dump-di.sh

  • vim /opt/module/scripts/00-backup/01-msql-dump-di.sh ```bash

    !/bin/bash

保存备份个数,备份7天数据

number=7

备份保存路径

backup_dir=/home/hadoop/backup

日期

dd=date +%Y-%m-%d-%H-%M-%S

备份工具

tool=mysqldump

host

host=188.3.10.213

用户名

username=root

密码

password=’uiLO$Du4r7PMKFk*’

将要备份的数据库,多个用英文逗号隔开

database_name=jh_dc,supervise

如果文件夹不存在则创建

if [ ! -d $backup_dir ]; then
mkdir -p $backup_dir; fi

简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql

for d in $database_name do $tool —host=$host -u $username -p$password $d > $backup_dir/$d-$dd.sql

  1. #写创建备份日志
  2. echo "create $backup_dir/$d-$dd.sql" >> $backup_dir/log.txt

done

删除7天前的备份

find $backup_dir/ -mtime +7 -name “*.sql” -exec rm -rf {} \;

找出需要删除的备份

delfile=ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1

判断现在的备份数量是否大于$number

count=ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l

if [ $count -gt $number ]

then

删除最早生成的备份,只保留number数量的备份

rm $delfile

写删除文件日志

echo “delete $delfile” >> $backup_dir/log.txt

fi


- 修改权限
```bash
chmod +x /opt/module/scripts/00-backup/01-msql-dump-di.sh

添加定时任务

crontab -e

0 2 * * * sh /opt/module/scripts/00-backup/01-msql-dump-di.sh

设置不明文使用MySQL密码

mysql_config_editor set --login-path=mylogin --host=188.3.10.213 --user=root --password

备份命令可改为

mysqldump --login-path=mylogin test >> backup.sql

参考

备份脚本:https://www.cnblogs.com/letcafe/p/mysqlautodump.html

还原:https://www.cnblogs.com/Eric-Young/p/7910334.html

密钥登录:https://blog.csdn.net/zc520yzy/article/details/105880605