Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
481
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement