linux脚本定时备份数据库表(详解)

 

数据库备份策略

1、备份的数据库

        服务器:10.10.10.254、10.2.11.10

        数据库:gps6

        备份的表: user_info alarminfo electronic_fence jpush last_point nav_device_info nav_mac_type_client_type_group nav_target_group nav_target_group nav_voice_recode sim_info user_device_tmp user_email user_info user_order web_column_info web_sms_send web_user_mail web_user_relevance_mac

 

 

 

2、备份数据

          备份脚本:/data/mysql.sh

                   数据库备份地址:/data/mysql/backup

                   定时执行脚本:0 3 * * * /data/mysql.sh

                   执行时间:每天凌晨3:00执行

                   备份保存:15天

 

 

 

3、实行流程

1)         创建备份脚本/data/mysql.sh

#!/bin/bash

#设置mysql备份目录

folder=/data/mysql/backup

cd $folder

 

day=`date +%Y%m%d`

rm -rf $day

mkdir $day

cd $day

 

#数据库服务 ip

host=localhost

#用户名

user=root

#密码  #&这些需要转义加\

password=fhxt\&cl15\#

 

#要备份的数据库

db=gps6

 

#需要备份的 tables

tables=(user_info alarminfo electronic_fence jpush last_point nav_device_info nav_mac_type_client_type_group nav_target_group nav_target_group nav_voice_recode sim_info user_device_tmp user_email user_info user_order web_column_info web_sms_send web_user_mail web_user_relevance_mac)

 

echo "================  开始备份..  ================="

# 遍历备份的数据库表

for t in ${tables[@]};

do

    backup_file="${t}.sql"

 

if [ ! -e "$backup_file" ];

then

    rm -f "$backup_file"

fi

   # 最核心的就是这句话,使用mysqldump命令执行备份

   # $db $t  数据库  相应的表

   mysqldump -h${host} -u${user} -p${password}  $db $t >$backup_file

done

finish_date=`date '+%Y-%m-%d %H:%M:%S'`

echo "================  结束备份...  at ${finish_date}.==="

 

 

#数据要保留的天数

days=15

 

 

cd ..

day=`date -d "$days days ago" +%Y%m%d`

#删除 相应的文件

rm -rf $day

 

 

  

2)         编写定时执行脚本命令

         执行命令:crontab -e   

         添加定时脚本:0 3 * * * /data/mysql.sh

 

3)         查看定时任务

         命令:crontab -l

        

 

posted @ 2017-10-25 10:48  低调人生  阅读(5970)  评论(0编辑  收藏  举报