Ubuntu 设置mysql 自动备份

1、创建备份文件以及备份脚本所在的目录
在根目录下面设置 cd /

mkdir -p /home/apps/backup/mysqllive

2、修改mysql备份配置文件
这种相比于在将用户名和密码写在bash脚本里面,会更加安全一些。

sudo vim /etc/mysql/conf.d/mysqldump.cnf

mysqldump.cnf文件添加以下内容:

host=127.0.0.1
user=**** # mysql 用户名
password=*** # mysql

注意:
mysqldump导出提示:mysqldump [Warning] Using a password on the command line interface can be insecure

sudo vim /etc/mysql/conf.d/mysql.cnf

mysqldump.cnf文件添加以下内容:

[mysqldump]
host=127.0.0.1
user=**** # mysql 用户名
password=*** # mysql

3、编写shell脚本, 放在backup方便管理

vim /home/apps/backup/mysql_backups.sh

mysql_backups.sh文件添加以下内容:

#!/bin/bash

#保存备份个数,备份15天数据
number=15
#备份数据存放位置
backup_dir=/home/apps/backup/mysqllive
#日期
dd=`date +%Y-%m-%d-%H:%M:%S`
#mysql导出数据库的命令
tool=mysqldump
#将要备份的数据库
database_name=dst5hy
 
#如果文件夹不存在则创建
if [ ! -d $backup_dir ]; 
then     
        mkdir -p $backup_dir; 
fi
 
#通过以下拼接成一条mysql导出数据库的命令,备份多个数据库或者全部数据库,可以修改这条命令
#简单写法  mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#$tool -u$username  -p $database_name > $backup_dir/$database_name-$dd.sql
$tool $database_name > $backup_dir/$database_name-$dd.sql
 
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
 
#找出需要删除的备份
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

4、修改备份脚本文件权限

chmod 777 mysql_backups.sh

这里将mysql_backups.sh的权限设置为任何用户可以读、写、执行,具体权限设置可以自行设定。

测试:

bash /home/apps/backup/mysql_backups.sh ;看会不会出现相应的数据库备份文件

5、配置定时器
修改定时器配置文件crontab:

sudo vim /etc/crontab

crontab文件添加以下内容:

#每天2点,执行mysql_backups.sh 脚本
0 2 * * * root /backup/mysql_backups.sh

注:"0 2 * * *"表示每天00:02执行,root户,/backup/mysql_backups.sh指向备份shell脚本文件。

crontab配置完成后,需要重新启动服务:

重新启动(sudo /etc/init.d/cron restart);

可以使用 crontab -l 命令来查看一下系统内的定时任务。

还可以使用其它方式创建定时任务了
使用 crontab -e 命令编辑定时任务,添加我们写好的脚本文件路径即可, Cron表达式不懂的话可以找个在线网站生成一下即可。
链接: http://c.jsrun.net/app/cron
链接: https://cron.qqe2.com/index-old.html
注意一下要退出按 Ctrl+x 然后输入 y 回车即可退出。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太过分少女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值