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 # 删除所有的定时任务