Guest User

Untitled

a guest
Feb 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. #!/usr/local/bin/ruby
  2. =begin
  3. * ----------------------------------------------------------------------------
  4. * "THE BEER-WARE LICENSE"
  5. * Luis José Da Silva G. <luisjose@tusitio.com.ve> escribió este archivo.
  6. * Mientras conserve
  7. * este comentario usted puede hacer lo que quiera con este material. Si alguna
  8. * vez nos encontramos
  9. * y piensa que este material le fue útil, usted puede invitarme una cerveza
  10. * en agradecimiento.
  11. * ----------------------------------------------------------------------------
  12. =end
  13. require 'fileutils'
  14. require 'logger'
  15. include FileUtils
  16.  
  17. log = Logger.new("/var/log/rbu.log", 5, 512*1024)
  18. log.level = Logger::INFO
  19. log.datetime_format = "%d/%m/%Y - %H:%M:%S"
  20.  
  21. destino = "/home/respaldos/"
  22. semana = "semana_#{Time.now.strftime("%W_del_%y")}/"
  23. semanal = "archivo/"
  24. ruta = "/usr/local/www/apache22/data/"
  25. carpeta = "crm_sos/"
  26. archivo_diario = "respaldo_#{Time.now.strftime("%d_%m_%y")}"
  27. archivo_semanal = "semana_#{Time.now.strftime("%W_del_%y")}"
  28. semana_pasada = "semana_" + (Time.now - 84600).strftime("%W_del_%y")
  29. extension = %w(.tgz .sql)
  30. db = "php_crm_sos"
  31. db_user = "php"
  32. db_pass = "devel"
  33.  
  34.  
  35. log.info("********************Realizando backup********************")
  36. Dir.chdir(ruta)
  37. unless File.exists?(destino + semana + archivo_diario + extension[0])
  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. if status
  45. log.info("creado " + ruta + carpeta + archivo_diario + extension[0])
  46. FileUtils.mv archivo_diario+extension[0], destino+semana
  47. log.info("Moviendo respaldos a #{destino+semana+archivo_diario+extension[0]}")
  48. else
  49. log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
  50. end
  51. else
  52. log.warn("La tarea ya fue ralizada el dia de hoy")
  53. end
  54. Dir.chdir(destino)
  55. if Time.now.strftime("%a") == "Mon"
  56. Dir.mkdir(semanal) unless File.directory?(semanal)
  57. unless File.exists?(semanal+archivo_semanal+extension[0])
  58. log.info("creando respaldo semanal")
  59. status = system("tar zcf #{archivo_semanal+extension[0]} #{semana}")
  60. if status
  61. log.info("creando " + destino + semanal + archivo_semanal+extension[0])
  62. FileUtils.mv archivo_semanal+extension[0], destino+semanal
  63. else
  64. log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
  65. end
  66. else
  67. log.warn("La tarea ya fue ralizada esta semana")
  68. end
  69. if File.directory?(semana_pasada)
  70. status_mkiso = system("/usr/local/bin/mkisofs -l -o tmp.iso #{semana_pasada}")
  71. if status_mkiso
  72. log.debug("Imagen ISO creada")
  73. status_cd = system("/usr/sbin/burncd -f /dev/acd0 -e data tmp.iso fixate")
  74. status_cd ? (log.info("CD grabado exitosamente")) : (log.fatal("falla burncd grabando CD"))
  75. FileUtils.rm 'tmp.iso'
  76. log.debug("Borrando imagen .iso")
  77. else
  78. log.fatal("Falla creando imagen (.iso) de archivos")
  79. log.error("Falla no se pudo grabar CD no existe archivo ISO")
  80. end
  81. else
  82. log.warn("No hay carpeta para quemar")
  83. end
  84. end
Add Comment
Please, Sign In to add comment