我正在使用随时 gem进行mysql数据库备份,我使用了cron job但是当我使用system"mysqldump -u root -ppassword app_production > /output_path/app_production.sql"
运行shell命令时,这只会在运行后运行一次终端上的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
我错过了什么吗?
答案 0 :(得分:1)
可能需要检查一些事项以确保它正在运行。您确定app_production.sql
包含正确的转储吗?或者是没有任何内容创建的文件?另请尝试使用command
代替system
。我认为command
是一个when命令,其中system
是ruby。
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
更新:
您还可以查看backup gem以进行备份。它有很多功能,包括通知,所以我建议你看一下。
答案 1 :(得分: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
运行命令后,现在看看输出文件
我希望它可以帮助你:)