linux系统,安装了mysql8.0
创建文件的命令:
vim ***.sh
shell文件文件参考自文章
链接
export LANG=en_US.UTF-8
#注意:下面这几个变量需修改为你自己的
BackDir=/usr/local/mybackuptest/file
LogFile=/usr/local/mybackuptest/log/bak.log
DataBase=yqxpayment
DataBaseUser=root
DataBasePWD='43Wzao&xx3419'
Port=3306
Host=localhost#BackDir是否是目录
if [ ! -d "$BackDir" ];then
mkdir $BackDir
fi
#判断Logfile是否是文件
if [ ! -f "$LogFile" ]; thentouch "$LogFile"
fiDate=`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 -P$Port -h$Host $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
fiLast=`date +"%Y%m%d_%H:%M:%S"`
echo start:$Begin end:$Last $DumpFileZip succ >> $LogFile
原文章的脚本拿过来可能不能用,所以我又去研究了一下mysqldump命令后面跟的参数,发现可能是少了几个参数,加上之后发现确实可以
下面解释一下各参数
相关命令:
查看定时任务
crontab -l
编辑定时任务
crontab -e
* * * * * 分别代表
分 时 日 月 周 *代表每一个,比如每分钟表示为 * * * * *
后面的路径为要执行的shell脚本路径
注意要保证对shell脚本是有执行权限的
没有的话就使用以下命令
chmod 777 文件
数据库备份就写好了
这次学习主要收获:
1.了解了mysqldump方式的数据库备份(导出数据库)
2.linux脚本简单编写