shell脚本自动备份Mysql数据库

shell脚本实现每天定时自动备份mysql数据库


脚本编写

  1. 首先mysql的备份命令为
mysqldump -uroot -p123456 dbname > /targetDir
  1. 将该命令放到脚本文件中
#!/bin/bash
#备份文件存放路径
baseDir=/usr/local/dbback/database
#备份文件的名称
fileName=dbname_$(date +%Y%m%d_%H%M%S).sql
#先删除旧文件
rm -f $baseDir/*
#执行备份
mysqldump -uroot -p123456 dbname > $baseDir/$fileName
  1. 将脚本加入到crontab定时任务中
进入编辑页面:
crontab -e
添加一行(共六个参数:分 时 几号 几月 周几 命令):
0 1,13 * * * /usr/local/dbback/autoBackup.sh
表示每天1点整和13点整运行该命令

2.0优化版
  • 上面的脚本执行备份之前,我是直接删除所有的旧文件,只会保留一份最新的;
  • 而现在的新需求是:要保留最近3天的备份文件;
#!/bin/bash
#sql文件存放路径
baseDir=/usr/local/dbback/database
#移除旧sql文件
function rmOldSqlFile(){
        #找到3天前的文件
        files=`find ${baseDir} -mtime +2 -name "*.sql"`
        for f in $files
        do
                #移除文件
                rm -f $f
        done
}

fileName=fangcao_$(date +%Y%m%d_%H%M%S).sql
#先删除旧sql文件
rmOldSqlFile
#备份
mysqldump -uroot -p123456 dbname > $baseDir/$fileName

-mtime:

find -mtime -n 表示n*24h内的文件;
find -mtime  n 表示n*24h至(n+1)*24h之间的文件;
find -mtime +n 表示(n+1)*24h之前的文件;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值