Linux上定期备份还是很简单的,主要思路就是先编写一个备份数据的sh脚本,然后用crontab去定期执行这个脚本。
按照以上思路我们开始实际操作
1.我们找到我们要备份的目录,记住它的路径,比如我这里选择的是我电脑上的/opt/o2o/images/目录,这个目录用于保存我的网站里面所用到的图片
2.创建一个用于保存备份数据的文件夹,这里我选择在/root/下面创建文件夹
3.创建一个备份数据的sh脚本
vim backup.sh
tar -zcvf /root/backup/images/images`date +%Y%m%d%H%M%S`.tar.gz /opt/o2o/images/
保存退出。我们先执行一下这个脚本看看是否可用。
进入到images目录下,会看到一个.tar.gz后缀的备份文件。
4.脚本执行成功,然后我们创建定时任务去定期的执行这个脚本
crontab -e
* * * * * sh /root/backup/backup.sh
保存退出,然后可以看到界面上出现提示crontab: installing new crontab,这就表示定时任务已经设置成功了。
上面的* * * * *
是crontab表达式,表示每隔一分钟执行一次(这里我是为了演示效果所以设置为每隔1分钟执行一次,实际生产环境的话一般都是1天备份一次),其他的表达式大家可以自己百度查找,这里就不细说了。
我们到/root/backup/images/目录下面就可以看到每分钟都会多出一个备份文件来。
我们还可以通过tail -f /var/log/cron
指令来查看定时任务执行的日志
这里在解释一下crontab的常用选项
- -e: 编辑任务
- -l: 显示所有任务
- -r: 删除当前用户的所有crontab任务
在实际的生产环境中一般都是一天备份一次,这里提供上相应的crontab表达式:0 0 * * *
(每天的0点0分执行一次),大家自行修改一下就好了。以上就完成了Linux定期备份数据的案例啦。
-----------------------------------------------------这是一个分隔线-----------------------------------------------
下面再介绍一下如何定期备份mysql数据
我们在sh脚本中写入
mysqldump -uroot -p密码 数据库名称 > 备份文件导出路径
然后再像前面一样用crontab去定期执行sh脚本就好了。有了前面的基础,这里操作就非常简单了,后面的步骤就不再重复介绍了。