写了套网站,除了日志需要定时分割外,《在Linux系统中如何用logrotate实现系统日志自动分割》,数据库还需要定时备份,如果你用的是云服务器自带的备份功能,会更简单些,但也需要自行购买数据库服务器,对于像我这种还在初期的系统来说,能减少服务器的开支就一定要减少,毕竟现在还不挣钱。
安装
用的是ruby on rails,所以用gem来安装
gem install backup
注意,这个版本有V3和V4版本区别,两个不太一样,小编用的是3.4.0。
生成备份模型
backup generate:model --trigger my_backup
其中my_backup换成你备份的名字就可以,可以随便改
这时,你会在生成一个文件,在这个路径下~/Backup/models/my_backup.rb,这个路径也可以自定义
修改配置文件
由于我用的是mysql,直接套用这个模板就可以了,另外加了一个compress_with Gzip,可以进行压缩。
这句是备份在什么地方,备份在本地,还可以选择邮件发送,ftp,以及一些云存储。
执行备份
backup perform --trigger my_backup
手动执行备份,就可以看到效果了,会生成以时间为名字的文件夹,进去后是压缩后的备份文件
自动执行
上面是手动的,如果想让系统自动执行,可以用whenever,安装gem 'whenever', :require => false
添加自己的周期性任务,在config/schedule.rb文件中添加
这样,每晚一点开始执行备份程序。
执行周期性任务,更新schedule.rb中的任务到cronjob中
crontab -e
whenever -iw
如果做了更改,可以用whenever --update-crontab这条命令更新