Guest User

Untitled

a guest
Feb 28th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 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.  
  22. log.info("*****************Realizando backup diario*****************")
  23. Dir.chdir(ruta)
  24. unless File.exists?(destino + semana + archivo_diario + extension[0])
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. Dir.mkdir(destino) unless File.directory?(destino)
  39. Dir.mkdir(destino+semana) unless File.directory?(destino+semana)
  40. log.debug("carpeta de exportacion: #{ruta+carpeta+archivo_diario+extension[1]}")
  41. status = system("/usr/local/bin/mysqldump -u #{db_user} --password=#{db_pass} #{db} > #{ruta+carpeta+archivo_diario+extension[1]}")
  42. status ? (log.info("base de datos exportada")) : (log.error("falla exportando base de datos"))
  43. status = system("tar zcf #{archivo_diario + extension[0]} #{carpeta}")
  44. system("rm #{ruta+carpeta+archivo_diario+extension[1]}")
  45. if status
  46. log.info("creado " + ruta + carpeta + archivo_diario + extension[0])
  47. FileUtils.mv archivo_diario+extension[0], destino+semana
  48. log.info("Moviendo respaldos a #{destino+semana+archivo_diario+extension[0]}")
  49. else
  50. log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
  51. end
  52. else
  53. log.warn("La tarea ya fue ralizada el dia de hoy")
  54. end
  55. Dir.chdir(destino)
  56. if Time.now.strftime("%a") == "Mon"
  57. log.info("**************Realizando backup Semanal**************")
  58. Dir.mkdir(semanal) unless File.directory?(semanal)
  59. unless File.exists?(semanal+archivo_semanal+extension[0])
  60. log.info("creando respaldo semanal")
  61. status = system("tar zcf #{archivo_semanal+extension[0]} #{semana}")
  62. if status
  63. log.info("creando " + destino + semanal + archivo_semanal+extension[0])
  64. FileUtils.mv archivo_semanal+extension[0], destino+semanal
  65. else
  66. log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
  67. end
  68. else
  69. log.warn("La tarea ya fue ralizada esta semana")
  70. end
  71. if File.directory?(semana_pasada)
  72. status_mkiso = system("/usr/local/bin/mkisofs -l -o tmp.iso #{semana_pasada}")
  73. if status_mkiso
  74. log.debug("Imagen ISO creada")
  75. status_cd = system("/usr/sbin/burncd -f /dev/acd0 -e data tmp.iso fixate")
  76. status_cd ? (log.info("CD grabado exitosamente")) : (log.fatal("falla burncd grabando CD"))
  77. FileUtils.rm 'tmp.iso'
  78. log.debug("Borrando imagen .iso")
  79. else
  80. log.fatal("Falla creando imagen (.iso) de archivos")
  81. log.error("Falla no se pudo grabar CD no existe archivo ISO")
  82. end
  83. else
  84. log.warn("No hay carpeta para quemar")
  85. end
  86. end
Add Comment
Please, Sign In to add comment