欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

定期给数据库以及图片进行备份

程序员文章站 2024-03-20 21:40:22
...

实现服务器每天零点零分对数据库和图片进行自动备份

利用linux自带的crontab实现数据库以及图片的定期备份。
登录阿里云服务器后
创建一个文件夹保存我们的备份文件

mkdir backup
cd backup
mkdir sql
mkdir image

备份数据库信息

cd sql
mysqldump -uroot -pyourpassword o2o > /root/backup/sql/o2o`date +%Y%m%d%H%M%S`.sql

定期给数据库以及图片进行备份
可以看到sql备份文件已经生成了。

备份图片压缩包

tar -zcvf /root/backup/image/image `date +%Y%m%d%H%M%S`.tar.gz /root/shopimages/upload/

就可以发现图片的压缩包生成在目录root/backup/image下了

新建 backup.sh文件将前面的两行指令编辑进去

vim backup.sh
定期给数据库以及图片进行备份
执行
sh backup.sh
可以发现 sqlimage下都生成了新的备份文件.

删除过期备份文件

# 将备份时间超过三天文件的删掉
find /root/backup/sql -type f -mtime +3 -exec rm -f {} \;

通过linux的crontab来设定定时任务实现定期备份

查看当前已有的定时任务

crontab -l
因为现在还没有,所以没有查出来
现在编写定时任务定期执行我们的backup.sh

这里我们使用在线Cron表达式生成器来生成我们的命令(百度:在线cron表达式生成器)

注意这里是不支持秒和年的 只支持从分钟到周这五个

选中分钟 将Cron表达式中的?前面的五个*拷贝出来去contab -e中使用(每分钟执行一次的意思)
使用 crontab -e 命令可以设置我们的命令
定期给数据库以及图片进行备份
通过命令tail -f /var/log/cron 可以看到我们定期备份的cron命令已经执行。

定期给数据库以及图片进行备份
我们就可以发现每分钟都会生成新的备份文件了,当然现实场景中我们并不需要每分钟都备份。

我们去备份每天的凌晨备份,拷贝对应的正则表达式

因为这里秒数我们是没办法准确控制0秒的,所以拷贝从第二个零开始

定期给数据库以及图片进行备份
crontab -e中将原来的每分钟的替换掉
定期给数据库以及图片进行备份
这里会报错,将?改为*就好了,后面可以去具体了解crontab。
定期给数据库以及图片进行备份
这样就是每天的零点零分去执行一次了。

相关标签: 数据库备份