Guest User

Untitled

a guest
Feb 28th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. require 'logger'
  2. include FileUtils
  3.  
  4. log = Logger.new("/var/log/rbu.log", 5, 512*1024)
  5. log.level = Logger::INFO
  6. log.datetime_format = "%d/%m/%Y - %H:%M:%S"
  7.  
  8. destino = "/home/respaldos/"
  9. semana = "semana_#{Time.now.strftime("%W_del_%y")}/"
  10. semanal = "archivo/"
  11. ruta = "/usr/local/www/apache22/data/"
  12. carpeta = "vtigercrm/"
  13. archivo_diario = "respaldo_#{Time.now.strftime("%d_%m_%y")}"
  14. archivo_semanal = "semana_#{Time.now.strftime("%W_del_%y")}"
  15. semana_pasada = "semana_" + (Time.now - 84600).strftime("%W_del_%y")
  16. extension = %w(.tgz .sql)
  17. db = "php_sos_backup"
  18. db_user = "php"
  19. db_pass = "devel"
  20.  
  21. log.info("*****************Realizando backup diario*****************")
  22. Dir.chdir(ruta)
  23. unless File.exists?(destino + semana + archivo_diario + extension[0])
  24. Dir.mkdir(destino) unless File.directory?(destino)
  25. Dir.mkdir(destino+semana) unless File.directory?(destino+semana)
  26. log.debug("carpeta de exportacion: #{ruta+carpeta+archivo_diario+extension[1]}")
  27. status = system("/usr/local/bin/mysqldump -u #{db_user} --password=#{db_pass} #{db} > #{ruta+carpeta+archivo_diario+extension[1]}")
  28. status ? (log.info("base de datos exportada")) : (log.error("falla exportando base de datos"))
  29. status = system("tar zcf #{archivo_diario + extension[0]} #{carpeta}")
  30. system("rm #{ruta+carpeta+archivo_diario+extension[1]}")
  31. if status
  32. log.info("creado " + ruta + carpeta + archivo_diario + extension[0])
  33. FileUtils.mv archivo_diario+extension[0], destino+semana
  34. log.info("Moviendo respaldos a #{destino+semana+archivo_diario+extension[0]}")
  35. else
  36. log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
  37. end
  38. else
  39. log.warn("La tarea ya fue ralizada el dia de hoy")
  40. end
  41. Dir.chdir(destino)
  42. if Time.now.strftime("%a") == "Mon"
  43. log.info("**************Realizando backup Semanal**************")
  44. Dir.mkdir(semanal) unless File.directory?(semanal)
  45. unless File.exists?(semanal+archivo_semanal+extension[0])
  46. log.info("creando respaldo semanal")
  47. status = system("tar zcf #{archivo_semanal+extension[0]} #{semana}")
  48. if status
  49. log.info("creando " + destino + semanal + archivo_semanal+extension[0])
  50. FileUtils.mv archivo_semanal+extension[0], destino+semanal
  51. else
  52. log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
  53. end
  54. else
  55. log.warn("La tarea ya fue ralizada esta semana")
  56. end
  57. if File.directory?(semana_pasada)
  58. status_mkiso = system("/usr/local/bin/mkisofs -l -o tmp.iso #{semana_pasada}")
  59. if status_mkiso
  60. log.debug("Imagen ISO creada")
  61. status_cd = system("/usr/sbin/burncd -f /dev/acd0 -e data tmp.iso fixate")
  62. status_cd ? (log.info("CD grabado exitosamente")) : (log.fatal("falla burncd grabando CD"))
  63. FileUtils.rm 'tmp.iso'
  64. log.debug("Borrando imagen .iso")
  65. else
  66. log.fatal("Falla creando imagen (.iso) de archivos")
  67. log.error("Falla no se pudo grabar CD no existe archivo ISO")
  68. end
  69. else
  70. log.warn("No hay carpeta para quemar")
  71. end
  72. end
Add Comment
Please, Sign In to add comment