linux服务器上mysql的定时备份

linux服务器上mysql的定时备份

新建mysql备份脚本文件,取名为mysql.sh

touch mysql.sh

linux服务器上mysql的定时备份_第1张图片
使用vim mysql.sh 编辑文件,添加下列内容


#!/bin/bash

#保存备份个数,备份31天数据
number=31
#备份保存路径
backup_dir=/data/mysqldump
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#用户名
username=root
#密码
password=Cipher171!
#将要备份的数据库
database_name=cipher_authorization_v1.5.4

#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
    mkdir -p $backup_dir;
fi

#简单写法  mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
$tool -u $username -p$password $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

根据具体的参数填写上面的内容,数据库账号密码,备份保存目录等等参数。

使用crontab命令添加定时任务。

1.使用下面的命令,编写执行定时任务的命令。

crontab -e

添加下面的内容(表示每分钟执行一次该命令,具体写法下翻。)

* * * * * sh /data/mysqldump/mysql.sh

在这里插入图片描述
关于定时执行脚本的写法:
在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
每个域之间使用空格或者制表符分隔。格式如下:
  minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了数字还有几个个特殊的符号就是"*"、"/“和”-"、",",*代表所有的取值范围内的数字,"/“代表每的意思,”/5"表示每5个单位,"-“代表从某个数字到某个数字,”,"分开几个离散的数字。

-l 在标准输出上显示当前的crontab。
-r 删除当前的crontab文件。
 -e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。

使用crontab -l 命令查看当前的crontab
在这里插入图片描述
到备份的目录查看有没有备份文件
linux服务器上mysql的定时备份_第2张图片
可以看到,每隔一分钟,脚本命令就执行一次,备份目录就新增一个备份sql文件。

经验总结:
1.利用mysqldump的mysql备份命令完成脚本。
2.利用crontab的定时执行任务的功能来执行脚本文件(文中的mysql.sh文件)
两者结合,就可以实现linux服务器定时备份mysql啦!

你可能感兴趣的:(mysql)