定期给数据库以及图片进行备份
程序员文章站
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
可以发现 sql
和image
下都生成了新的备份文件.
删除过期备份文件
# 将备份时间超过三天文件的删掉
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。
这样就是每天的零点零分去执行一次了。
上一篇: 腾讯云服务器与虚拟机搭建主从分离数据库