#!/bin/bash #备份数据库,格式如 数据名:用户名:密码 databaseArr=("test:testuser:test123" "test1:testuser1:test123") #备份存放目录 savePath=/usr/local/mysql/backup #===============勿改动================= for v in ${databaseArr[@]}; do arr=(${v//:/ }) Delbackpath=$savePath/${arr[0]}-$(date -d "7 days ago" +'%Y-%m-%d').sql.gz rm -f $Delbackpath mysqldump -u ${arr[1]} -p${arr[2]} --opt ${arr[0]} | gzip > $savePath/${arr[0]}-$(date +%Y-%m-%d).sql.gz done
最近遇到要备份多个数据库的情况,不想每个数据都写一个shell备份,就用循环写了个shell备份多个数据库
若要添加新的数据库直接在 databaseArr 里面添加对应的格式字符串
自动删除7天前的备份
savePath 改为自己的备份目录