Skip to content

Instantly share code, notes, and snippets.

@Stilg4r
Last active December 15, 2015 07:29
Show Gist options
  • Save Stilg4r/5224160 to your computer and use it in GitHub Desktop.
Save Stilg4r/5224160 to your computer and use it in GitHub Desktop.
Pequeño script echo en ruby y para linux, que recibe como parámetros un directorio origen, directorio destino y cantidad de días, y mueve los archivos cuyo fecha de acceso sea menor a la cantidad de días especificado y también mueve los directorios vacíos
#!/usr/bin/env ruby
=begin
Archivo: Clean.rb
Autor: Israel Navarrete Alvarado (Stilgar)
Fecha: 2013-03-22
Versión: 1.1
Contacto: navarrete.alvarado@gmail.com
Descipcion:
Pequeño script que recibe como parámetros un
directorio origen, directorio destino y cantidad en
días este mueve los archivos cuyo fecha de acceso
sea menor a la cantidad de días especificado y
también mueve los directorios vacíos
Revision: 2013-03-23
Se agrega verificacion de tamaño, el 4 parametro
indita el tamaño maximo en MB si sobrepasa el
tamano se borra directamente
clean.rb sdir/ ddir/ 3 [100]
=end
require "fileutils"
require 'logger'
SDIR=ARGV[0]
DDIR=ARGV[1]
DAYS=ARGV[2]
FSIZE=ARGV[3]
log = Logger.new( "#{SDIR}limpieza.txt", 'weekly')
log.info "Orgien #{SDIR}, destino #{DDIR}, dias #{DAYS}"
file2mv=%x"find #{SDIR} -type f".split("\n").map do |file|
if ((Time.now-File.stat(file).atime)/(60*60*24)).round > DAYS.to_i
file
end
end.compact!
file2mv.each do |file|
if (not FSIZE.nil?) and ((File.size(file)/2**20) > FSIZE.to_i )
log.info "Archivo borrado #{file}"
FileUtils.rm file
else
log.info "Archivo movido #{file}"
FileUtils.mv file, DDIR
end
end
dir2mv=%x"find #{SDIR} -type d -empty".split("\n").map do |dir|
log.info "Directorio movido #{dir}"
FileUtils.mv dir, DDIR
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment