定时每天备份mysql并定时删除上月记录(脚本)

备份的脚本比较简单:

#!/bin/bash



# 定义年 月 日

year =` date   +%Y `

month =` date   +%m `

day =` date   +%d `



# 定义备份的目录

BACKDIR =/ bak_1 / mysql / $year / $month / $day



# MySQL的root密码

ROOTPASS = 123456



# 建立目录

mkdir - p $BACKDIR



# 获取数据库列表

DBLIST =` ls -p /var/lib/mysql | grep / | tr -d / `



# 备份

for dbname in $DBLIST

do

mysqlhotcopy $dbname - u root - p $ROOTPASS $BACKDIR | logger - t mysqlhotcopy

done
复制代码

上面的脚本将数据库按"年/月/日"目录结构备份,将脚本存为back.sh添加到cron里每天凌晨3点执行
00 03 * * * root /root/back.sh

下面的是每月3号删除上个月的备份,存为del_bak.sh,每月3号3点3分执行
03 03 03 * * root /root/del_bak.sh

注意脚本上传后,要chmod一下权限,比如chmod 755 /root/back.sh

#!/bin/bash



# 定义年 月 日

year =` date   +%Y `

month =` date   +%m `

#day=`date   +%d`



# 取上一个月

month =` expr $month - 1 `  



# 如果是1月,则上一月为12,并且年也减1

  
if [ $month - eq 0 ]; then

     month
= 12

     day
= 31

     year
=` expr $year - 1 `  

  
fi



# 因为备份时小于10月的月份有前导零,所以这里判断如果小于10月,则加前导零

  
if [ $month - lt 10 ]; then

     pre
= 0  

   fi



#获取要删除的目录名

BACKDIR =/ bak1 / mysql / $year / $pre$month



#删除了

rm - rf $BACKDIR
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值