0

我正在使用无论何时gem 来备份 mysql 数据库,我为此使用了 cron 作业,但是当我使用 运行 shell 命令时system"mysqldump -u root -ppassword app_production > /output_path/app_production.sql",它只会whenever --update-crontab store在终端上运行命令后运行一次。

我的 schedule.rb 是:

set :output, "/output_path/app_production.sql"
set :environment, 'production'

every 59.minute do
  system"mysqldump -u root -ppassword app_production > /path/app_production.sql"
  # runner "MyModel.some_method"
  # rake "some:great:rake:task"
end

我错过了什么吗?

4

2 回答 2

1

可能有一些事情需要检查以确保它正在运行。您确定其中app_production.sql包含正确的转储吗?还是创建的文件没有任何内容?也尝试使用command而不是system. 我认为是红宝石command的任何时候命令。system

every 59.minutes do
  command "mysqldump -u root -ppassword app_production > /path/app_production.sql"
  # runner "MyModel.some_method"
  # rake "some:great:rake:task"
end

更新:

您还可以查看备份 gem以进行备份。它有很多功能,包括通知,所以我建议你看看它。

于 2013-08-22T07:31:50.287 回答
0

我已经遇到了这个问题。解决方案是:

set :output, "/output_path/app_production.sql"
set :environment, 'production'
every 59.minute do
   command "mysqldump -u root -ppassword app_production"
   # runner "MyModel.some_method"
   # rake "some:great:rake:task"
end

运行命令后,现在看看输出文件

我希望它可以帮助你:)

于 2013-10-11T08:01:13.063 回答