Mysql数据库备份脚本并压缩数据保存10天

定时任务

crontab -e

#数据库备份
#每天凌晨3点备份一次数据库
00 03 * * * /home/java_space/script/db_backup.sh >> /home/java_space/script/logs/db/db.backup.`date +"\%Y\%m\%d"`.log 2>&1

脚本

#!/bin/bash

#获取当前时间
today=$(date "+%Y%m%d")
# 删除10天前
before10=$(date -d"10 day ago" +%Y%m%d)
# backupHome="/home/backup/"
backupHome="/home/backup/"
username="数据库用户名"
password="数据库密码"
databases=("数据库1" "数据库2")
# mysqldump="/usr/local/mysql/bin/mysqldump"
mysqldump="/usr/local/mysql/bin/mysqldump"

echo "Backup Databases..."

#进入到备份文件目录
cd ${backupHome}

for db in ${databases[@]};do
	# 备份文件
    ${mysqldump} -u${username} -p${password} --lock-all-tables --flush-logs ${db} > ${db}_${today}.sql;
	
	#压缩备份文件
	tar zcvf ${db}.${today}.tar.gz ${db}_${today}.sql;
	
	# 删除10天前的压缩文件跟今天未压缩的文件
	rm -f "${db}_${before10}.sql.tar.gz";
	rm -f "${db}_${today}.sql";

	echo "finish backup mysql database ${db}_${before10}.sql.tar.gz";
done

查看日志, 如果提示 "/bin/sh: /home/java_space/script/db_backup.sh: Permission denied
" 权限不足

使用命令

# 授权脚本可执行权限
chmod a+x /home/java_space/script/db_backup.sh

Mysql数据库备份脚本并压缩数据保存10天_第1张图片

你可能感兴趣的:(服务器,mysql)