网站类型,河北省建设厅网站工程师查询,wordpress 加分类,长春做网站网站Linux配置MySQL自动备份
配置MySQL的自动备份首先要编辑一个备份脚本然后配置开启Linux定时任务即可#xff0c;下面是具体配置
1、配置备份脚本并测试执行
1.1 编写备份脚本
#这里创建脚本名为mysql_backups.sh
mkdir ~/mysqlmulu
touch ~/mysqlmulu/mysql_backups.sh#!/…Linux配置MySQL自动备份
配置MySQL的自动备份首先要编辑一个备份脚本然后配置开启Linux定时任务即可下面是具体配置
1、配置备份脚本并测试执行
1.1 编写备份脚本
#这里创建脚本名为mysql_backups.sh
mkdir ~/mysqlmulu
touch ~/mysqlmulu/mysql_backups.sh#!/bin/bash# 保留备份的数量
number8
# 备份的文件需要保存在哪里
backup_dir/home/bak/mysqlbak/
# 日期
dd$(date %Y-%m-%d-%H-%M-%S)
# mysql导出数据库的工具
toolmysqldump
# 数据库用户名建议不要在脚本中明文存储密码而是使用~/.my.cnf或其他安全方法
usernameroot
# 数据库密码已移除建议使用更安全的方法存储
# passwordxxx
# 将要备份的数据库
database_namebugtracker
# 如果文件夹不存在则创建
if [ ! -d $backup_dir ]; thenmkdir -p $backup_dir
fi
# 通过以下命令拼接成一条mysql导出数据库的命令
# 注意由于不在脚本中存储密码需要通过其他方式如~/.my.cnf配置了mysql客户端的凭据
$tool -u $username $database_name $backup_dir/$database_name-$dd.sql
# 检查mysqldump命令是否成功
if [ $? -ne 0 ]; thenecho $(date %Y-%m-%d-%H-%M-%S) Database backup failed for $database_name $backup_dir/log.txtexit 1
fi# 写创建备份日志
echo $(date %Y-%m-%d-%H-%M-%S) create $backup_dir/$database_name-$dd.sql $backup_dir/log.txt
# 如果要按日期删除需要更复杂的逻辑来解析文件名并比较日期
old_backups$(find $backup_dir -type f -name *.sql -printf %T %p\n | sort | head -n -$number | cut -d -f2-)
# 判断现在的备份数量是否大于$number
count$(echo $old_backups | wc -w)
# 如果old_backups不为空即找到了需要删除的备份则删除它们
if [ -n $old_backups ]; then# 删除最早生成的备份只保留number数量的备份echo $old_backups | xargs -d \n rm -fecho $(date %Y-%m-%d-%H-%M-%S) Deleted old backups to keep only $number recent ones $backup_dir/log.txt
fi1.2 my.cnf文件存储认证信息
[client]
useryour_username
passwordyour_password1.3 测试备份生效
chmod 755 ~/mysqlmulu/mysql_backups.sh
./mysql_backups.sh2、配置定时任务脚本
2.1 配置任务脚本
vim mysqlRollBack.cron#这里设置每月20号的1点执行脚本
0 1 20 * * /root/mysqlmulu/backup_script.sh2.2 添加到定时任务
crontab mysqlRollBack.cron然后查看是否成功即可
crontab -l