Linux 备份数据库mysql

  自动远程备份mysql数据库,保留最近7天数据,每天00:00备份

  包含两方面:脚本和定时任务

1、编写备份脚本

(1)创建目录:mkdir -p /home/dbback/mysql_backup

(2)构建备份文件:vim mysql_backup.sh(内容如下代码块)

(3)赋予执行权限:chmod +x mysql_backup.sh

注:注意格式,如:if条件[ ! -d ${dbpath} ],[]内两边要有空格

#!/bin/bash

file_name=`date +%Y%m%d`
path="/home/dbback/mysql_backup/"
all_db_array=( db1 db2 db3 )

for dbname in ${all_db_array[@]}
do

# 创建数据库目录
dbpath="${path}${dbname}/"
if [ ! -d ${dbpath} ] 
then
mkdir -p ${dbpath}
fi

# 备份数据库
mysqldump -h 192.168.160.112 -uroot -pzy888+ $dbname > ${dbpath}${dbname}_${file_name}.sql
        echo "mysql_back_40,${dbname} ok."

# 只保留最近7天的数据
str=`find ${dbpath} -name "${dbname}*.sql"|xargs ls -t`
array=($str)
len=${#array[@]}
if [ $len -gt 7 ]
then
  last=$len-1
  needrm=${array[@]:7:$last}
  rm -rf ${needrm}
          echo "删除的文件是:${needrm}"
fi

done

 

2、定时任务

crontab 定时任务,crontab文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表星期(0~6,0为星期天),cmd代表要运行的程序。例如:* * * * *代表每分钟都执行

[root@localhost ~]# crontab -e  # 编辑
00 00 * * * /home/dbback/mysql_backup/mysql_backup.sh 
[root@localhost
~]# crontab -l # 查看列表
00 00 * * * /home/dbback/mysql_backup/mysql_backup.sh
[root@localhost
~]# crontab -r # 删除所有的定时任务

 

posted on 2017-12-21 10:23  笔-记  阅读(1758)  评论(0编辑  收藏  举报