- MySQL备份脚本
- !/bin/bash
- 保存备份个数,备份7天数据
- number=7
- 备份保存路径
- 日期
- 备份工具
- host
- 用户名
- 密码
- 将要备份的数据库,多个用英文逗号隔开
- 如果文件夹不存在则创建
- 简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
- 删除7天前的备份
- 找出需要删除的备份
- 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
MySQL备份脚本
脚本放在目录/opt/module/scripts/00-backup/01-msql-dump-di.sh
保存备份个数,备份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
#写创建备份日志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
