backup
是一个非常强大的备份工具,用来备份数据库和文件十分方便,先来看一下支持情况:
支持备份: 数据库、单个文件、整个目录
操作系统: UNIX-like (
目前还不支持windows)
数据库: MySQL, PostgreSQL, MongoDB 、 Redis
文件存储服务: Amazon S3、Rackspace Cloud Files、Dropbox
其他备份方式: FTP、SFTP、SCP 、 RSync
备份成功与否通知: Email,、Twitter、Campfire
由于条件所限,我只演示一下FTP方式备份,配置起来还是挺简单的:
#首先,安装backup:
$ gem install backup
#在项目目录下执行:
$ backup generate --databases='mysql' --archives --storages='ftp' --compressors='gzip' --path='config'
把config目录下生成的config.rb重命名为backup.rb,我的配置如下:
database_yml = File.expand_path("../config/database.yml", __FILE__)
RAILS_ENV = ENV['RAILS_ENV'] || 'development'
require 'yaml'
config = YAML.load_file(database_yml)
Backup::Model.new(:my_backup, 'my backup') do
archive :my_archive do |archive|
archive.add File.expand_path("./public/system/")
end
database MySQL do |db|
db.name = config[RAILS_ENV]["database"]
db.username = config[RAILS_ENV]["username"]
db.password = config[RAILS_ENV]["password"]
db.host = config[RAILS_ENV]["host"]
db.port = config[RAILS_ENV]["port"]
db.socket = config[RAILS_ENV]["socket"]
db.skip_tables = ['sessions']
db.additional_options = ['--quick', '--single-transaction']
end
store_with FTP do |server|
server.username = 'test'
server.password = 'test'
server.ip = '192.168.1.101'
server.port = 21
server.path = '~/backups/'
server.keep = 5
end
compress_with Gzip do |compression|
compression.best = true
compression.fast = false
end
end
说明:
1、public/system/下是由paperclip上传的图片
2、FTP的配置信息最好也像数据库的配置那样,配置在另外一个yml文件中,并且这个文件不要放入版本控制系统中,我这只是一个测试所以无所谓
在lib/tasks目录下新建bakcup.rake如下:
namespace :db do
desc "My Backup"
task :backup do
sh "backup perform --trigger my_backup --config_file 'config/backup.rb'"
end
end
在项目根目录下执行这条命令进行备份:
$ rake db:backup
配合whenever
自动备份效果更佳!
需要注意一下这个gem实际上并不是针对rails来开发的,它提供了一种命令行的方式来备份系统上的数据库和文件,所以你可以用它备份任何你想要备份的东西。
主要参考:
https://github.com/meskyanichi/backup/wiki
http://erik.debill.org/2011/03/26/csing-backup-with-rails
分享到:
相关推荐
Rails3教程系列 DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY...
jquery-datatables-rails, 用于 Rails的jquery数据表 gem jquery-datatables-rails 这个 gem 为 jQuery DataTables插件提供了方便,以便与 Rails 资产pipleine结合使用。 它提供所有基本的datatable文件,以及一些...
rails, Ruby on Rails 欢迎使用 RailsRails 是一个web应用程序框架,它包括根据 Model-View-Controller ( MVC ) Pattern 创建数据库备份的web应用程序所需的所有内容。理解 MVC Pattern 是理解 Rai
jquery-rails, 一个 gem,用于自动使用jQuery和 Rails 3 railsjQuery 面向 Rails 如此伟大。这里 gem 提供:jQuery 1.7.2jQuery UI 1.8.18 ( 仅适用于 javascript )jQuery UJS适配器assert_select_j
Rails 3 in Action 2011年9月新鲜出炉,针对最新的Rails 3.1进行说明
来自practical rails social networking sites上的第二章的实例,应用了数据导入,导入数据到mysql后就可以使用,命令: rake db:migrate(进入文件夹"railscoder")
NULL 博文链接:https://michael-roshen.iteye.com/blog/1731372
Windows7_Cygwin_Git_RVM_Ruby1.9.3_Rails3_MongoD B_Nginx_Unicorn_Rspec_Guard_Spork(2-Ruby on Rails3 安装配置
Ruby+on+Rails+3+Tutorial.pdf 应用Rails进行敏捷Web开发第4版.pdf (Agile Web Development with Rails) Rails.Recipes.Rails.3.Edition.pdf
Rails3消息队列系统 Sidekiq
NULL 博文链接:https://hlee.iteye.com/blog/587000
turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...
rails3的英文文档
ruby on rails轻松使用
Rails3的ActiveRecord 查询API.doc
rails常用命令,例如新建rails项目,新建controller、model 等等
rails-i18n, 用于收集 Ruby on Rails i18n 环境数据以及其他有趣的Rails 相关 i18n 内容的存储库 Rails 语言环境数据存储库 中心收集区域设置数据,以便在 ruby 上使用。 gem-安装添加到你的Gemfile:gem 'rails-i18n...
The Rails™ 3 Way is a comprehensive resource that digs into the new features in Rails 3 and perhaps more importantly, the rationale behind them. —Yehuda Katz, Rails Core The Bible for Ruby on ...
当然从controller中来在controller中hidden: true # 默认不显示,可以手动点击,将曲线显示出来label: 'ETC盈利率', #