Guest User

Untitled

a guest
Mar 5th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. # Save as app/manifest/recipes/mysql_backup.rb
  2. # Edit moonshine.yml:
  3. #
  4. # - Backup database from database.yml at 3am:
  5. # :mysql:
  6. # :backup: true
  7. #
  8. # - Get fancy:
  9. # :mysql:
  10. # :backup:
  11. # :database:
  12. # - myapp_production
  13. # - some_other_db
  14. # :minute: 0
  15. # :hour: 0
  16. #
  17. def mysql_backup
  18. backup = configuration[:mysql][:backup]
  19. backup_dir = configuration[:deploy_to] + "/backup"
  20.  
  21. file backup_dir,:ensure => :directory, :owner => backup[:user]||configuration[:user], :mode => '750'
  22.  
  23. (backup[:database]||database_environment[:database]).to_a.each do |db|
  24. cron "mysqldump of #{db}",
  25. :command => "mysqldump -uroot #{db} > #{backup_dir}/#{db}.`date +\\%m\\%d\\%H\\%M\\%S\\%Y`.sql",
  26. :minute => backup[:minute]||0,
  27. :hour => backup[:hour]||3,
  28. :dom => backup[:dom]||'*',
  29. :month => backup[:month]||'*',
  30. :dow => backup[:dow]||'*',
  31. :user => backup[:user],configuration[:user]
  32. :require => file(backup_dir)
  33. end
  34. end
  35.  
  36. recipe :mysql_backup if configuration[:mysql] && configuration[:mysql][:backup]
Add Comment
Please, Sign In to add comment