1、查看磁盘空间大小,选取备份路径
df -h
home空间是很充足。
2、新建备份目录
cd /home
mkdir backup
cd backup
3、创建备份Shell脚本
创建文件XXX可以命名为数据库的名字
vi backupXXX.sh
在sh文件中编辑以下内容(全量导出):导出备份文件为SQL文件
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
若导出为压缩文件,则编辑为以下内容:
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
4、磁盘空间毕竟有限,可删除之前备份的文件,留下最近备份的即可
#删除7天之前的备份
find /home/backup -name "eco*.sql.gz" -type f -mtime +7 -exec rm -rf {
} \; > /dev/null 2>&l
#删除5分钟之前的备份
find /home/backup -name "eco*.sql.gz" -type f -mmin +5 -exec rm -rf {
} \; > /dev/null 2>&l
5、保存退出
先Esc键,:wq保存退出编辑
6、添加可执行权限
chmod u+x backupXXX.sh
7、执行下脚本
./backupXXX.sh
8、出现警告:很多资料说出现此警告时备份会失败,却没有出现失败的情况,文件备份成功了
9、添加定时任务
执行命令
crontab -e
没有提示错误,说明crontab已安装,报错的自行安装
编辑定时任务
*/1 * * * * /home/backup/backupXXX.sh
没分钟执行一次Shell脚本,备份文件
10、可以去backup目录下查看是否有新备份的文件生成
也可以查看任务日志
tail -f /var/log/cron
最终配置:
mysqldump -uroot -pong!8 ec | gzip > /home/backup/ec_$(date +%Y%m%d_%H%M%S).sql.gz
find /home/backup -name "ec*.sql.gz" -type f -mtime +30 -exec rm -rf {
} \; > /dev/null 2>&1