T086学习网 | 站长学院 | 技术文档 | 成语 | 歇后语 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论 | 欣欣百宝箱

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

【 更新时间:2010-10-14 | 字体:
[导读]shell脚本: 备份的脚本比较简单: #!/bin/bash # 定义年 月 日 year=`date +%Y` month=`date +%m` day=`date +%d` # 定义备份的目录 BACKDIR=/bak_1/mysql/$year/$month/$day # MySQL的root密码 ROOTPASS=123456 # 建...

shell脚本:

备份的脚本比较简单:

#!/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

  • 转载请注明来源:IT学习网 网址:http://www.t086.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
更多
留言建议ASP探针PHP探针站长Enjoy的Blog
© 2017 T086学习网 - T086.com(原itlearner.com)
RunTime:7.95ms QueryTime:7