数据库的自动备份以及定期删除

由于前段时间数据库被黑了,库全部被删除,所幸有自动备份,否则博客将化为乌有,这里给数据库的自动备份做一个总结。

创建备份目录

1
2
3
cd /home
mkdir backup
cd backup

编写shell脚本

1
2
# 创建sh脚本
vim myblog.sh
1
2
3
4
5
6
#!/bin/bash
# This is a ShellScript For Auto DB Backup and Delete old Backup
backupdir=/home/backup
time=` date +%Y-%m-%dT%H:%M:%S `
mysqldump -uusername -ppassword_ databasename | gzip > $backupdir/databasename_$time.sql.gz
find $backupdir -name "databasename_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1

backupdir 为我们备份目录;
username为数据库登录用户名;
password为数据库登录密码;
databasename为想要备份的数据库名称;

第六行脚本为删除时间太久的备份,这里删除七天前的备份。

添加可执行权限

1
chmod u+x myblog.sh

此时可以执行

1
./myblog.sh

验证下是否有语法错误。

设置定期执行

1
2
crontab -e
01 3 * * * /home/backup/myblog.sh

设置每天三点执行一次备份