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
分享到:
相关推荐
- 设置`gitlab_rails['backup_keep_time'] = 259200`来决定备份文件的保留时间,此处设置为3天。 2. **更改所有者和权限** - 使用`chown -R git:git /opt/gitlab_backup/`将备份目录的所有权更改为Git用户。 - ...
gitlab_rails['backup_path'] = '/mnt/backups' 然后,使用以下命令重新加载配置文件: gitlab-ctl reconfigure 二、Gitlab 自动备份 Gitlab 自动备份是指使用 cron 任务来自动执行 Gitlab 备份命令,从而实现...
入门将gem添加到您的Rails项目中: gem 'postgresql-backup' 转到终端并使用捆绑程序更新您的宝石: bundle install现在,您的项目已经有两个新的rake任务: backup和restore 。配置如果打算使用本地文件系统存储...
3. 恢复 GitLab 服务器数据,使用以下命令: ``` gitlab-ctl stop unicorn gitlab-ctl stop sidekiq chmod 777 /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar gitlab-rake gitlab:...
Redmine是一个基于Web的项目管理工具,使用Ruby on Rails框架开发。为了正确安装和使用Redmine,需要满足一定的系统要求和配置步骤。 系统要求: * Ruby on Rails 2.0.2 * 数据库:MySQL 4或更高版本、PostgreSQL ...
1. **从备份恢复**:使用之前创建的完整或增量备份文件恢复整个数据库或部分数据。 2. **时间点恢复**:如果使用支持此功能的数据库管理系统,可以从特定时间点恢复,即使在备份之后发生了数据更改。 3. **从版本...
- **数据备份**:使用`mysqldump`命令备份数据库。 - **附件备份**:使用`rsync`命令同步`RAILS_ROOT/files`目录中的附件。 示例脚本: ```bash # Database backup /usr/bin/mysqldump -u <username> -p <password>...
对于“backup-wx-master”这个子文件,很可能是该项目的主分支或备份。参与这样的项目,开发者不仅可以学习到实际的开发技巧,还能了解到如何将这些组件应用于实际项目中。此外,开源项目通常有活跃的社区支持,遇到...
- **定时任务**: `30 3 * * * /mnt/gitlab/backups/git_backup.sh` (每天凌晨3:30执行一次) - **脚本权限**: 设置为755 **1.2 内网环境** - **地址**: `http://xx.xx.xx.xx` - **备份目录**: `/var/opt/gitlab/...
综上所述,Bitnami Linux Redmine 安装涉及的主要知识点有 Redmine 的基本功能、Ruby on Rails 开发、数据库管理、Web 服务器配置以及自动化部署工具的使用。通过提供的 `bak.sh` 脚本,我们可以学习到如何维护和...
- 单独启动MySQL服务,以便后续的数据备份操作。 ```bash ../installdir/mysql/scripts/ctl.sh start ``` 4. **备份数据库**: - 找到`installdir/apps/redmine/config/database.yml`文件,记录其中的`...
posixcubes 使用posixcube.sh使用haproxy负载均衡器(前端),nginx + passenger Rails服务器(web),postgresql数据库(数据库)以及更多(elasticsearch,数据库备份,rsyslog服务器等)构建完整的Ruby on Rails...