Last active
December 15, 2015 07:29
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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