linux中数据库定时备份脚本

编写脚本

linux中经常会遇到要求备份数据库,这里记录一下备份的脚本怎么写

BackDir:我们的备份的文件放的位置
LogFile:备份成功或者失败的日志
DataBase:数据库名称
DataBaseUser:数据库用户名
DataBasePWD:数据库密码

脚本如下

export LANG=en_US.UTF-8
#注意:下面这几个变量需修改为你自己的
BackDir=/home/backup
LogFile=/home/backup/bak.log
DataBase=user
DataBaseUser=root
DataBasePWD=pwd

if [ ! -d "$BackDir" ];then
mkdir $BackDir
fi

if [ ! -f "$LogFile" ]; then
 touch "$LogFile"
fi

Date=`date +%Y%m%d_%H%M%S`
Begin=`date +%Y%m%d_%H:%M:%S`
#到备份目录下
cd $BackDir
#设置导出脚本名称
DumpFile=dataBaseNme_$Date.sql
#设置压缩包名称
DumpFileZip=dataBase_$Date.sql.tgz
#导出数据库数据
mysqldump -u$DataBaseUser -p$DataBasePWD $DataBase > $DumpFile
#压缩sql脚本
tar -czvf $DumpFileZip $DumpFile
#删除sql脚本
rm $DumpFile

#下面这一段是保留最近7天的数据
count=$(ls -l  *.tgz |wc -l)
if [ $count -ge 8 ]
then
file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
rm -f  $file
fi

Last=`date +"%Y%m%d_%H:%M:%S"`
echo start:$Begin end:$Last $DumpFileZip succ >> $LogFile

加入到定时任务

  • crontab -l 查看当前有没有定时任务
  • crontab -e 编辑定时任务
    例子:
    linux中数据库定时备份脚本_第1张图片
0    0   *   *   *   /root/test.sh
#分  时   日   月  周  |《==============命令行=======================》|

注意:有可能会遇到这个错误:

1.mysqldump: command not found
这是因为在安装mysql的时候,并没有将mysql的bin配置到系统的环境变量中

  • 解决办法:
   vim /etc/profile

在这里插入图片描述

设置环境变量:
写一个MYSQL_HOME,值为“mysql的安装路径”
在PATH后面加上$MYSQL_HOME/bin
export后面加上MYSQL_HOME

MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME

在这里插入图片描述
将mysql加入到系统的环境变量后这个问题就搞定了,以后在任何目录也都可以连接mysql

  1. windows下上传shell脚本至linux,其格式将为dos。dos模式的shell脚本将不能再linux下正确运行,需要修改文件
  • linux服务器上,用vi编辑器打开shell脚本,随后进入命令行模式,输入"set ff",即可查看文件模式,
  • 在命令行模式下,输入"set ff=unix",即可将dos模式修改为unix模式。
    再次查看:
    linux中数据库定时备份脚本_第2张图片

你可能感兴趣的:(linux)