Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/ruby
- =begin
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE"
- * Luis José Da Silva G. <luisjose@tusitio.com.ve> escribió este archivo.
- * Mientras conserve
- * este comentario usted puede hacer lo que quiera con este material. Si alguna
- * vez nos encontramos
- * y piensa que este material le fue útil, usted puede invitarme una cerveza
- * en agradecimiento.
- * ----------------------------------------------------------------------------
- =end
- require 'fileutils'
- require 'logger'
- include FileUtils
- log = Logger.new("/var/log/rbu.log", 5, 512*1024)
- log.level = Logger::INFO
- log.datetime_format = "%d/%m/%Y - %H:%M:%S"
- destino = "/home/respaldos/"
- semana = "semana_#{Time.now.strftime("%W_del_%y")}/"
- semanal = "archivo/"
- ruta = "/usr/local/www/apache22/data/"
- carpeta = "crm_sos/"
- archivo_diario = "respaldo_#{Time.now.strftime("%d_%m_%y")}"
- archivo_semanal = "semana_#{Time.now.strftime("%W_del_%y")}"
- semana_pasada = "semana_" + (Time.now - 84600).strftime("%W_del_%y")
- extension = %w(.tgz .sql)
- db = "php_crm_sos"
- db_user = "php"
- db_pass = "devel"
- log.info("********************Realizando backup********************")
- Dir.chdir(ruta)
- unless File.exists?(destino + semana + archivo_diario + extension[0])
- Dir.mkdir(destino) unless File.directory?(destino)
- Dir.mkdir(destino+semana) unless File.directory?(destino+semana)
- log.debug("carpeta de exportacion: #{ruta+carpeta+archivo_diario+extension[1]}")
- status = system("/usr/local/bin/mysqldump -u #{db_user} --password=#{db_pass} #{db} > #{ruta+carpeta+archivo_diario+extension[1]}")
- status ? (log.info("base de datos exportada")) : (log.error("falla exportando base de datos"))
- status = system("tar zcf #{archivo_diario + extension[0]} #{carpeta}")
- if status
- log.info("creado " + ruta + carpeta + archivo_diario + extension[0])
- FileUtils.mv archivo_diario+extension[0], destino+semana
- log.info("Moviendo respaldos a #{destino+semana+archivo_diario+extension[0]}")
- else
- log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
- end
- else
- log.warn("La tarea ya fue ralizada el dia de hoy")
- end
- Dir.chdir(destino)
- if Time.now.strftime("%a") == "Mon"
- Dir.mkdir(semanal) unless File.directory?(semanal)
- unless File.exists?(semanal+archivo_semanal+extension[0])
- log.info("creando respaldo semanal")
- status = system("tar zcf #{archivo_semanal+extension[0]} #{semana}")
- if status
- log.info("creando " + destino + semanal + archivo_semanal+extension[0])
- FileUtils.mv archivo_semanal+extension[0], destino+semanal
- else
- log.error("falla creando "+ ruta + carpeta + archivo_diario + extension[0])
- end
- else
- log.warn("La tarea ya fue ralizada esta semana")
- end
- if File.directory?(semana_pasada)
- status_mkiso = system("/usr/local/bin/mkisofs -l -o tmp.iso #{semana_pasada}")
- if status_mkiso
- log.debug("Imagen ISO creada")
- status_cd = system("/usr/sbin/burncd -f /dev/acd0 -e data tmp.iso fixate")
- status_cd ? (log.info("CD grabado exitosamente")) : (log.fatal("falla burncd grabando CD"))
- FileUtils.rm 'tmp.iso'
- log.debug("Borrando imagen .iso")
- else
- log.fatal("Falla creando imagen (.iso) de archivos")
- log.error("Falla no se pudo grabar CD no existe archivo ISO")
- end
- else
- log.warn("No hay carpeta para quemar")
- end
- end
Add Comment
Please, Sign In to add comment